php 弱类型比较


1、按数字值比较

1.1数字(整数、浮点数、科学计数法、各种进制数)或纯十进制数字字符串。

<?php
        $a = 100;   //整数
        $b = "100"; //十进制数字符串
        $c = 0b1100100; //二进制数
        $d = 0144;  // 八进制数
        $e = 0x64; //十六进制数
        $f = 1e2; //科学计数
        var_dump($a==$b); //bool(true)
        var_dump($a==$c); //bool(true)
        var_dump($a==$d); //bool(true)
        var_dump($a==$e); //bool(true)
        var_dump($a==$f); //bool(true)
        var_dump($b==$c); //bool(true)
        var_dump($b==$d); //bool(true)
        var_dump($b==$e); //bool(true)
        var_dump($b==$f); //bool(true)
        var_dump($c==$d); //bool(true)
        var_dump($c==$e); //bool(true)
        var_dump($c==$f); //bool(true)
        var_dump($d==$e); //bool(true)
        var_dump($d==$f); //bool(true)
    ?>

1.2、数字 或 字符串(常规字符串、以数字开头的字符串)

<?php
        $a = -100;      //数字
        $b = "-100abc"; //以数字开头的字符串
        $c = "abc"      //常规字符串。
        var_dump($a==$b); // bool(true)
        var_dump($a==$c); // bool(false)
        var_dump($b==$c); // bool(false)
?>

2、按字符串ASCII比较
常规字符串之间的比较,按字符的 ascii 码进行比较。
3、按布尔值比较
TRUE > FALSE

另:

非空即为真:
FALSE == FALSE
0 == FALSE
0.0 == FALSE
'' == FALSE
'0' == FALSE
array() == FALSE
NULL == FALSE

原文地址:https://www.cnblogs.com/natian-ws/p/7195869.html