所以我剛剛讀了Why to never use 'or die'.如何優雅地死去?
我更加困惑,然後永遠。我正在驗證一個複雜的表單,並且我去了if語句的許多嵌套級別,而不是和我將變量傳遞給名爲$ status的表單,該表單只能是「新建」或「編輯」。然後,當用戶提交要再次驗證的表單時,表單將作爲隱藏字段($ _POST)傳遞$ status值。我想確保用戶不會意外地改變這一點,所以如果我想通過'new'或'edit'之外的其他東西傳遞錯誤,我想要捕獲錯誤。 (雖然我想完全消除影響在一個理想的世界中,這變量的用戶的可能性。)
所以我想,我會使用if語句DIE()在
<nested ifs>
Select ($status){
Case 'edit':
break;
Case 'new':
break;
default:
//using example from article
trigger_error("An error that should not occur has occurred", E_USER_ERROR);
break;
}
</nested ifs>
我不我真的明白這比死()更清潔嗎?本質上,我想調用另一個函數,它顯示用戶在這個時候可以做些什麼來解決錯誤,但我希望代碼完全停止運行,因爲我不想讓if語句繼續下去以繼續解析當發現除「新」或「編輯」之外的任何內容併產生錯誤。
我不知道我有多清楚,所以請隨時請我詳細說明任何不清楚的要點。 (或更好的是,隱藏的用戶字段是否會被黑客攻擊?如何防止?:P)
+1精彩的稱號。 – 2011-03-24 21:01:23