今天在写一个上传类的时候,exit着实让我郁闷了一把,PHP的exit并非停止当前函数运行,会影响到上层调用,准确的说exit是停止脚本解析,相当于asp的response.end。
class class_a()
{
public $i;
function b()
{
$this->a();
$this->i=0;
}
function a()
{
...
exit;
}
}
*******************************************
$obj = new class_a();
$obj->b();
$a=1;
echo a;
这样的话,内部public 属性 i 是没有值的。同样下面的页面中 echo a;也是没有任何输出。
这几天写了点delphi,就NND忘了PHP的exit;晕死,郁闷了我一下午,直到我逐步调试后,才发现原来一个类里的一个函数有这么一句。
深入一点,讲另外一个类似的函数。
return;
如果在一个函数中调用 return() 语句,将立即结束此函数的执行并将它的参数作为函数的值返回。return() 也会终止 eval() 语句或者脚本文件的执行。
如果在全局范围中调用,则当前脚本文件中止运行。如果当前脚本文件是被 include() 的或者 require() 的,则控制交回调用文件。
注意到区别了吧。这些小函数要理解清楚,免得不同的语言之间混了。
在 线 人