PHP如果语句比较清晰

时间:2014-04-05 17:32:58

标签: php

我遇到了PHP问题。我对它很新,但这让我感到沮丧! 下面的falsify()函数有效。如果我比较(falsify == false),那么它将回显假,但为什么这是必要的?如果没有比较,为什么伪造不会返回假?;

<?php
if (falsify) {
  echo "true";
} else {
  echo "false";
}

function falsify(){
  return false;
}
?>

3 个答案:

答案 0 :(得分:2)

您需要使用

if (falsify()){
}

不确定你是怎么没有得到未定义的常量错误。

答案 1 :(得分:0)

  

如果使用未定义的常量,PHP假定您的意思是名称   常量本身,就像你把它称为字符串一样(CONSTANT   vs "CONSTANT")。此时将发出级别E_NOTICE的错误   发生。另请参阅有关$foo[bar]错误原因的手册输入(除非   你首先define() bar作为常数... ...

http://www.php.net/manual/en/language.constants.syntax.php

没有falsify

()是隐式字符串:

var_dump(falsify);
var_dump(falsify());

function falsify() {
    return false;
}

http://codepad.org/3Kb6vcMO

产地:

string(7) "falsify"
bool(false)

第一个评估为true,因此if将其视为true

答案 2 :(得分:0)

您只使用了伪造而不是伪造()。这意味着在PHP中伪造!= 0。所以不是0就变成了现实。它返回true,最终变为 -

 if(true)

因此输出。