为什么我的If语句接受PHP中不正确的String条件?

Jér*_*ont 2 php string conditional-statements

我很困惑,因为PHP接受以下条件.

<?php
   $b = true;
   if($b == 'anything') 
      echo 'ok';
   else
      echo 'no';
?>
Run Code Online (Sandbox Code Playgroud)

好吧,PHP显示ok.我还是不明白怎么可能.

也许,你可以为我澄清一下.

MaK*_*MaK 5

这对你有用

$b = true;
if($b === 'hello') 
    echo 'ok';
else
    echo 'no';
Run Code Online (Sandbox Code Playgroud)

当使用==php时只会检查值是否相等,而不比较值类型,当第一个值是bool时,php会将双方转换为bool,转换任何字符串但空''字符串'0'将返回true,这就是为什么你必须使用===

点击此链接了解php中的比较