PHP中一个有意思的小问题

首先,我们来看一段代码:

<?php
    $data = 'aa22';
    if ($data != 0) {
        echo "data不是0";
    }else{
        echo "data是0";
    }
?>

这段代码运行后,输出什么?
我想大部分都认为是:data不是0
但是
·
·
·
·
运行后它输出的是:data是0

这是为什么呢?

这是因为PHP不同类型的进行比较时,会转换成数字,字符串转数值的话是会把字符串里面的第一个有效数值作为数值,如'a'会返回0。

<?php
    $data = '2aqw2';
    if ($data != 0) {
        echo "data不是0";
    }else{
        echo "data是0";
    }
?>

'2aqw2'字符串转换为第一个有效数值2,所以输出:data不是0。

原文地址:https://www.cnblogs.com/cnlihao/p/13885316.html