roc*_*row 1 php comparison boolean
我遇到了引起我兴趣的事情,我只是想知道如何解释它为什么会发生.
$var = true;
if($var == 'X'){
echo 'pass';
}
Run Code Online (Sandbox Code Playgroud)
上面的代码会触发"通过"......为什么?如果我使用$var === 'x'它将表现得像预期的那样.
谢谢.
非空字符串将始终评估为TRUE参见有关布尔评估的PHP文档.正如您所发现的,您必须使用===严格类型比较来测试字符串'X'是否与布尔值相同TRUE.
'X' == TRUE // TRUE
'' == TRUE // FALSE
'X' === TRUE // FALSE
Run Code Online (Sandbox Code Playgroud)