编程之美如何体现编程的内在魅力?

2026-06-10 08:202阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计449个文字,预计阅读时间需要2分钟。

编程之美如何体现编程的内在魅力?

在PHP编程经验中,递归调用常与静态变量结合使用。静态变量的含义和作用可参考PHP手册。以下示例代码展示了如何利用静态变量来优化递归调用:

phpheader('Content-type: text/plain');

function func() { static $count=0; echo 调用次数: . $count++ . \n; if ($count <10) { func(); }}func();


我个人的 PHP 编程经验中,递归调用常常与静态变量使用。静态变量的含义可以参考 PHP 手册。希望下面的代码,会更有利于对递归以及静态变量的理解

header("Content-type: text/plain");
function static_function () {
static $i = 0;
if ($i++ < 10) {
echo $i . "\n";
static_function();
}
}

static_function();这段代码会如数输出 1 到 10 的数字。在 static_function 函数第二次运行时,变量 i 由于是静态变量,所以仍被保留不被释放,进而可以得到自增的值。

编程之美如何体现编程的内在魅力?

这个问题不单单出现在PHP中,你可以在其他语言的代码中经常看到:

差:for($i=0;$i<count($array);$i++){...}
好:$count=count($array);for($i=0;$i<$count;$i++){...}


  这因该很好解释,但许多人就是想少写一行代码而浪费了系统资源。如果在循环声明中使用了count函数,那每次循环都会调用一次。如果你的循环次数很多,那就会浪费非常多的时间。

用预定义长量代替没有意义的数字

defined ("GREAT_THAN_MAX",1);
defined("NORMAL",0);
defined("LESS_THAN_MIN",-1);

switch($type){
case GREAT_THAN_MAX:
...
break;
case NORMAL:
...
break;
case LESS_THAN_MIN:
...
break;
default:
doSomething();
break;
}

本文共计449个文字,预计阅读时间需要2分钟。

编程之美如何体现编程的内在魅力?

在PHP编程经验中,递归调用常与静态变量结合使用。静态变量的含义和作用可参考PHP手册。以下示例代码展示了如何利用静态变量来优化递归调用:

phpheader('Content-type: text/plain');

function func() { static $count=0; echo 调用次数: . $count++ . \n; if ($count <10) { func(); }}func();


我个人的 PHP 编程经验中,递归调用常常与静态变量使用。静态变量的含义可以参考 PHP 手册。希望下面的代码,会更有利于对递归以及静态变量的理解

header("Content-type: text/plain");
function static_function () {
static $i = 0;
if ($i++ < 10) {
echo $i . "\n";
static_function();
}
}

static_function();这段代码会如数输出 1 到 10 的数字。在 static_function 函数第二次运行时,变量 i 由于是静态变量,所以仍被保留不被释放,进而可以得到自增的值。

编程之美如何体现编程的内在魅力?

这个问题不单单出现在PHP中,你可以在其他语言的代码中经常看到:

差:for($i=0;$i<count($array);$i++){...}
好:$count=count($array);for($i=0;$i<$count;$i++){...}


  这因该很好解释,但许多人就是想少写一行代码而浪费了系统资源。如果在循环声明中使用了count函数,那每次循环都会调用一次。如果你的循环次数很多,那就会浪费非常多的时间。

用预定义长量代替没有意义的数字

defined ("GREAT_THAN_MAX",1);
defined("NORMAL",0);
defined("LESS_THAN_MIN",-1);

switch($type){
case GREAT_THAN_MAX:
...
break;
case NORMAL:
...
break;
case LESS_THAN_MIN:
...
break;
default:
doSomething();
break;
}