2017-09-01 79 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