关于 php 不同数据类型在比较时该如何转化问题

先上一道题

<?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”。

那么有的同学就会问了,凭啥是 数值转成布尔 ,额,这个嘛,好吧!! 我也是来找答案的,求大神来解答下,小弟必当鞠躬尽瘁死而后已。