编程之美

我个人的 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;
}

你可能感兴趣的:(编程,PHP,重构)