在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';
答案 0 :(得分:1)
假设您在同一文件夹中有两个文件a.php
和b.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();
两者都在努力停止脚本