200831/07

PHP的exit Published by bugx 19:11:41 七月 31th,2008 in 随笔涂鸦.

今天在写一个上传类的时候,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() 的,则控制交回调用文件。

注意到区别了吧。这些小函数要理解清楚,免得不同的语言之间混了。


exit  php  

此文发于 2008-7-31 19:11:41,归类于 随笔涂鸦,已阅读
Trackback引用地址:http://blog.nowans.com/trackback.asp?id=223
日志评论Feed地址:http://blog.nowans.com/feed.asp?o=comment&id=223

0条留言针对“PHP的exit” 订阅评论 发表评论

假使你有话要讲,我想我还不至于拦着你罢: