PHP:与"=="运算符混淆

rei*_*sly 0 php

有人可以向我解释为什么这些代码返回"TRUE".我知道我应该使用"==="而不是"=="但我会跑到这个代码并想知道为什么它会返回true.提前致谢.

<?php
    $s = "final";
    $i = 0;
    if($s == $i){
        echo "TRUE";
    }else{
        echo "FALSE";
    }
Run Code Online (Sandbox Code Playgroud)

Efo*_*fog 5

当您尝试比较字符串和数字时,解释器会将您的字符串转换为int,因此您在最终时得到0 == 0.这就是为什么string == 0是真的.