2016-05-01 66 views
-2

我有这样的功能:为什么要功能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('[email protected]', 'please enter valid e-mail address'); 
    else 
     if (mb_strlen($email) > 120) 
      $this->setError('email', 'too long! 120 characters'); 
} 

继续收到预期的其他错误。无论我将呼叫置于该函数的哪个位置,它都会调用呼叫下方的线路。

我可以把这个确切的功能,并通过自己调用它自己的文件,它可以正常工作。我在这个问题上大概有2天,所以开始看到我的屏幕上运行代码。

感谢您提供任何帮助。

+0

没有调用任何东西正在搞乱PHP。 – PeeHaa

+1

另外:这就是为什么你应该总是使用大括号... – PeeHaa

+1

像@PeeHaa说,如果没有***大括号***,你不能有代码生存的'2行',除了它是'1行'在IDE中被分成两个***(不建议,继续使用大括号)*** –

回答

1

像@PeeHaa说这与陈述和缺乏花括号的安排if/else有关。如果is_email($email)返回false,以下代码将添加一些大括号以确保执行电子邮件错误和错误窗口语句。

if (!is_email($email)) { 
    $this->setError('email', 'invalid email'); 
    $this->errorWindow('[email protected]', 'please enter valid e-mail address'); 
} 
else { 
    if (mb_strlen($email) > 120) 
     $this->setError('email', 'too long! 120 characters'); 
}