返回是否停止PHP中的其余脚本?

时间:2014-01-08 04:36:37

标签: php

在php中,依靠return来停止执行其余脚本是否安全?或者有更好的方法吗?

例如:

$x = 3;

if($x == 3){
    return false;
}

$a = 2;
$b = 2;

echo $a + $b;

echo 'You will never see me if x = 3';

3 个答案:

答案 0 :(得分:1)

假设您在同一文件夹中有两个文件a.phpb.php

a.php上的代码

$x = 3;

if($x == 3){
    return false;
}

$a = 2;
$b = 2;

echo $a + $b;

echo 'You will never see me if x = 3';

b.php上的代码

include 'a.php';
echo 'i am still reachable';

如果您运行a.php,您会看到输出i am still reachable。因为return会将您带回到调用脚本的位置。

如果您使用exit()代替return,则无法看到该输出。由于脚本执行立即结束,因此会看到exit

答案 1 :(得分:0)

return不一定会停止脚本。如果该代码是included脚本的一部分,则return将结束包含。

  

如果从全局范围调用,则结束当前脚本文件的执行。如果包含或需要当前脚本文件,则将控制权传递回调用文件。此外,如果包含当前脚本文件,则返回的值将作为include调用的值返回。如果从主脚本文件中调用return,则脚本执行结束。

使用exit()停止您的脚本。

答案 2 :(得分:0)

使用break();exit();两者都在努力停止脚本