为什么函数会扰乱PHP


Why function messes PHP?

我有这个函数:

function errorWindow($field, $toFix)
{
    echo "<script language='javascript'>";
    echo "alert('We are sorry but your request could not be logged because " . $field .
         " is not a valid response.  Please ". $toFix ." and resubmit your request')</script> <br />";
}

我正试图从另一个验证用户输入的函数调用它。我试图从函数中的这一点调用它:

if (!$email || mb_strlen($email = trim($email)) == 0)
    $this->setError('email', 'required field');
else {
    if (!is_email($email))
        $this->setError('email', 'invalid email');
        $this->errorWindow('scriptjet@toscors2.com', 'please enter valid e-mail address');
    else
        if (mb_strlen($email) > 120)
            $this->setError('email', 'too long! 120 characters');
}

继续获取预期的else错误。不管我把对函数的调用放在哪里,它都会弄乱调用下面的行。

我可以自己把这个确切的函数和调用放在它自己的文件中,它可以正常工作。我已经处理这个问题大约2天了,所以开始看到代码在我的屏幕上运行

谢谢你能提供的任何帮助。

Like@PeeHaa表示,这与if/else语句的排列和缺少大括号有关。以下代码添加了一些大括号以确保电子邮件错误,如果is_email($email)返回false,则执行错误窗口语句。

if (!is_email($email)) {
    $this->setError('email', 'invalid email');
    $this->errorWindow('scriptjet@toscors2.com', 'please enter valid e-mail address');
}
else {
    if (mb_strlen($email) > 120)
        $this->setError('email', 'too long! 120 characters');
}