这个问题与我使用PHP的经历有关,但没有理由不适用于其他语言。
在测试期间设置了ERROR_REPORTING(E_ALL);
,我注意到我有一些通知,例如Notice: Undefined offset: 0 in ChrisW/public_html/admin.php on line 122
。这是因为我在数组中存储有关表单的警告(未填充值,无效值等),然后访问它们:
echo $errorsArray[0] . '<label for="name" id="name-label">Your Name</label>
<input id="name" name="name" value="' . $name . '" />';
我的验证函数中的错误数组为$errorsArray = array($nameError, $emailError);
。第一次加载页面时,我会显示以下表单:
if(count($_POST) == 0)
{
$name="";
$email="";
$errorsArray = array();
form_display($name, $number, $errorsArray);
}
在理想的世界中:
$errorsArray("","");
或echo $errorsArray[0]
更改为echo (count($errorsArray[0])==0 ? "" : $errorsArray[0])
?希望有一个相当黑白的答案 - 我不想引起长时间的讨论!
答案 0 :(得分:2)
正如FakeRainBrigand指出的那样,没有绝对的答案。我个人认为通知是有原因的,并且为了避免被太多无关的错误消息所淹没,即使它使代码更长,并且看起来更冗长,也应该摆脱它们。
由于PHP的不一致性以及隐含地执行某些操作或默认情况下忽略潜在错误的所有点(例如在这种情况下),PHP可能有点容易出错。因此,明确地做一些事情可能是明智的,毫无疑问的意图。
答案 1 :(得分:0)
生产代码不应该提出通知。这导致滚动失明 - 你习惯了很多毫无意义的消息,所以你没有注意到重要的消息(直到为时已晚)。
随机评论: