微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – 数组和foreach

知道为什么不打印这些错误吗?

// Validate the email
if (preg_match($regex, $email))  
        $errors[] = "Invalid email address";

    // ... and the password
    if (strlen($password) < 4)
        $errors[] = "Password is too short";

    // No errors?   
    if (empty($errors))
    {
        // insert into db

    }

// If there were any errors, show them
if (!empty($errors))
{
    $errors = array();
    foreach ($errors as $error)
    echo '<li>'.$error.'</li>';
}

解决方法:

你在输出之前覆盖了数组.

 $errors = array();  // Creates an empty array
 foreach ($errors as $error)  // Won't do anything

删除$errors = array(),它应该工作.

通过在脚本的最开始初始化$errors = array()然后检查count($errors)>的方式会更清晰. 0而不是空:

// No errors?   
if (count($errors) == 0)
{
 // insert into db

}

// If there were any errors, show them
else
{
    $errors = array();
    foreach ($errors as $error)
    echo '<li>'.$error.'</li>';
}

这样,您将避免关于$error未设置的通知.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐