【发布时间】:2013-08-28 09:07:17
【问题描述】:
在 PHP 中验证数据时过度使用 die(); 函数是一种不好的编程习惯吗?
我正在构建一个已经使用该函数十多次的类,因此如果验证测试失败,整个脚本就会死掉。这是一个好的做法,有没有更好的方法我应该这样做?这种做法是否因语言而异,是否有任何编程范围的约定或最佳实践可供学习?
这是一个例子:
if($error = $this->checkDate($start)){
echo "START: ".$error."\r\n";
die();
}
if($error = $this->checkDate($end)){
echo "END: ".$error."\r\n";
die();
}
if($start>$end){
$error = "The start date must come <i>after</i> the end date!";
echo $error;
die();
}
if(($end-$start)<(3*24*3600) || ($end-$start)>(3*30*24*3600)){
$error = "The period must be at <i>least</i> 3 days long, and at <i>most</i> 3 months long. This date spans about ".round(($end-$start)/(3600*24*30))." months.";
echo $error;
die();
}
等等等等……
PS - “最佳实践”怎么还不是标签??
【问题讨论】:
-
为什么最后不能死?
-
感谢 Fred - 我不清楚这与 die() 的使用有何关系?
-
因为 die() 通常不会为最终用户提供干净而有意义的输出:它是带有可选输出的脚本的突然终止
-
@elclanrs,在这种情况下,我不会,因为我希望以特定顺序向我提供错误。因此,例如,如果第一个和最后一个条件中断,我想知道第一个,然后,当我修复它时,最后一个。
-
最佳实践是一种意见,S.O 不是发表意见的地方:-)