關於 PHP 不同資料型別在比較時該如何轉化問題

三木閒僧發表於2019-06-13

先上一道題

<?php

    echo (int)false;

so,easy。輸出為0。不錯,接下來

<?php

    if(false > -1) {
        echo 'Yes';
    }else {
        echo 'No';
    }

大家都知道,不同型別的資料在做比較時,php 會幫我們轉成同一型別的資料,故 false 轉成 0,0 > -1,所以輸出 'Yes'。

嘿嘿嘿,你要這麼想,那就錯了,實際輸出是 “No”。

分析

其實在上述判斷語句裡面,不是false轉成數值,而是 -1 轉成了布林值 true,false > true 不成立,輸出“NO”。

那麼有的同學就會問了,憑啥是 數值轉成布林 ,額,這個嘛,好吧!! 我也是來找答案的,求大神來解答下,小弟必當鞠躬盡瘁死而後已。

相關文章