2017-09-01 81 views
1

在交换机中,我重定向每个用户,在这种情况下删除break;是否安全?PHP exit()而不是中断开关

switch ($action) 
{ 
    case "ActionA": 
     header('Location: PageA.php'); 
     exit(); 
     break; 

    case "ActionB": 
     header('Location: PageB.php'); 
     exit(); 
     break; 
} 

编辑:为什么我尽量小心,原因是一个情况下,可以修改用户PROFIL,彼此可以将其删除。

+2

是的,这是没有必要的,安全的去除 - 你终止脚本,所以没有更多的后'exit' – Qirel

+1

'退出(将要执行);'会现在终止程序execution.so'break;'现在是不必要的了 –

+0

好的,谢谢:) –

回答

2

由于exit();终止程序执行。所以在exit();之后什么也不会执行。所以break;现在在这里是不必要的。

您可以直接象下面这样: -

switch ($action) 
{ 
    case "ActionA": 
     header('Location: PageA.php'); 
     exit(); 

    case "ActionB": 
     header('Location: PageB.php'); 
     exit(); 
} 
+0

所以header()会表现得像休息一样? –

+1

噢我的...你的“最好的方式”建议是不好的。执行一个案例直到达到中断。这意味着,如果'$ action'是''ActionA“',那么'header's将被执行。 – Jakumi

+1

@AlivetoDie请参考https://php.net/switch“switch语句一行一行地执行(实际上是语句语句),一开始不执行任何代码,只有当找到一个case语句的表达式计算结果为一个与开关表达式的值相匹配的值是否会开始执行语句,PHP会继续执行这些语句直到开关块结束,或者第一次看到一个break语句,如果你不写一个break声明在案件陈述清单的末尾,PHP将继续执行以下案件的陈述。“ – Jakumi