我在使用 PHP 时遇到了问题。我对它相当陌生,但这让我很沮丧!下面的 falsify() 函数有效。如果我比较(伪造 == 假),那么它会回显假,但为什么有必要呢?为什么没有比较,证伪不返回错误?
<?php
if (falsify) {
echo "true";
} else {
echo "false";
}
function falsify(){
return false;
}
?>
你需要使用 as
if (falsify()){
}
不确定你如何没有得到未定义的常量错误。
如果您使用未定义的常量,PHP 会假定您指的是名称 常量本身,就像您将其称为字符串一样(
CONSTANT
与"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
。
你只使用了 falsify 而不是 falsify() 。这意味着在 php 中伪造 !=0 。所以不是 0 的东西变成了真的.它返回真实,最终变成——
if(true)
因此输出.