我遇到了PHP问题。我对它很新,但这让我感到沮丧! 下面的falsify()函数有效。如果我比较(falsify == false),那么它将回显假,但为什么这是必要的?如果没有比较,为什么伪造不会返回假?;
<?php
if (falsify) {
echo "true";
} else {
echo "false";
}
function falsify(){
return false;
}
?>
答案 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;
}
产地:
string(7) "falsify"
bool(false)
第一个评估为true
,因此if
将其视为true
。
答案 2 :(得分:0)
您只使用了伪造而不是伪造()。这意味着在PHP中伪造!= 0。所以不是0就变成了现实。它返回true,最终变为 -
if(true)
因此输出。