发现一道很让人不淡定的PHP面试题

这题忘了是新浪还是妈妈网的面试题了,挺让人纠结的,在开发中没有处理过不同类型的变量直接进行运算和比较,看到这样的题目真的比较茫然。


[php]

<?php

$b=array(1,2,3,4);

$c=40;

$a=$b>$c?4:5;

echo $a;

?>

[/php]

和 [php]
<?php

$b=array(1,2,3,4);

$c=0;

$a=(int)$b>$c?4:5;

echo $a;

?>

[/php]

有大侠知道这是为什么不。求真相! PS:看到有同学的留言,说array和obj不能比较,我记得array有时也可以叫“数组对象”,二者转换非常简单。既然能相互转换,那在做不同类型的比较运算的时候,PHP又是按怎样的方式进行转换和对比的呢。 [php]

$array = array(‘aaaa’, 11111111, ‘bbbb’, ‘cccc’, 2222, ‘dddddddd’, ‘eeeeeeee’);

$obj = new stdclass();

$obj->aaaaaaa = ‘aaaaaaaa’;
$obj->bbbbbbb = ‘bbbbbbb’;
$obj->ccccccc = ‘ccccccc’;
$obj->ddddddd = ‘ddddddd’;
$obj->eeeeeee = ‘eeeeeee’;
echo $array > $obj ? "大于" : "小于";//out put "小于"

$array = (object) $array ;          //数组对象转换

echo $array > $obj ? "大于" : "小于";//out put "大于"

[/php]