所以我刚刚读了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