比较算子 - 类型杂耍和布尔

Isi*_*ode 5 php

我一直在阅读关于类型杂耍和布尔的PHP文档,但我仍然不明白为什么这个比较评估为真.我的[不正确]理解告诉我,在下面的if语句中,整数0被认为是FALSE,而"a",非空字符串被认为是TRUE.因此,我预计此比较将解析为FALSE == TRUE,最终为FALSE.哪个部分我弄错了?

   <?php
            if(0 == "a"){
                    $result = "TRUE";
            }else{
                    $result = "FALSE";
            }

            //$result == "TRUE"
    ?>
Run Code Online (Sandbox Code Playgroud)

http://codepad.viper-7.com/EjxBF5

Jus*_*ᚄᚒᚔ 9

当PHP执行字符串<=>整数比较时,它会尝试以智能方式将字符串转换为数字.假设如果你有一个字符串"42",那么你想要将 42与另一个整数进行比较.当字符串不以数字开头时,其值为零.

来自文档:

该值由字符串的初始部分给出.如果字符串以有效数字数据开头,则这将是使用的值.否则,该值将为0(零).

比较文档中也会推断出这种行为(请查看第一个示例中的第一行).