理解&&在PHP中如果-clause

时间:2009-08-23 22:27:29

标签: php if-statement

如何将1作为#2的输出?

#1

我运行了这段代码

echo validate_email ( $email );
echo validate_password ( $password );
echo validate_username ( $username );  

我得到了

111

这意味着一切正常。

#2

我运行此代码

function validate ( $email, $password, $username ) {
    if (  (validate_email ( $email ) == 1)
        AND (validate_password ( $password ) == 1)
        AND (validate_username ( $username ) == 1 ) )
            return 1;
}
echo validate ($email, $password, $username );

我没有得到任何产品。

我尝试通过将AND更改为&&来解决问题但仍保留相同的输出。 输出应为1

2 个答案:

答案 0 :(得分:6)

你没有得到任何输出,因为你只是返回 1,而不实际回应它。除非您告诉PHP这样做,否则事情不会得到回应。

示例:

function test() {
    if (  (validate_email ( $email ) == 1)
        AND (validate_password ( $password ) == 1)
        AND (validate_username ( $username ) == 1 ) )
            return 1;
    else
            return 0;

echo test();

此外,以下是if上的几点:

  • 您应该使用&&代替AND,因为前者更常见。
  • 您不需要== 1位 - 1始终为TRUE。例如:

    if ( validate_email($email) ) // correct email
    

    而不是:

    if ( validate_email($email) == 1 ) // correct email
    

答案 1 :(得分:2)

在第一个示例中,您回显每个函数的输出。 在第二个示例中,如果它们都等于1,则返回

返回某些内容不会将其输出到STDOUT。如果你想要,你需要回应它。