前段时间遇到几道好无聊的面试题,有点类似于脑筋急转弯的感觉。感觉出这几道题的人真是好无聊!
以下输出结果是什么?
$arr = array(0=>1,"aa"=>2, 3, 4); foreach($arr as $key=>$val){ print($key == "aa" ? 5 : $val); }
答案: 5534
分析:
这道题适及到数据类型自动转换, 0 == "aa"结果true。
我的评价:
php弱类型语言,不同的操作符和数据类型之前的转换,有时候会匪夷所思。而且规则一堆,今天记住了,过段时间就忘了。
另外在实际应用中,都是使用全等于===,谁那么无聊会用上题中的==来判断???,即使你很清楚知道转换的规则,你能保证100%不出错吗,===这么安全的未什么不用??
以下输出结果是什么?
$a = 3; $b = 5; if($a = 5 || $b = 7) { $a++; $b++; } echo $a . " " . $b;
答案: 1 6
分析:
这道题涉及到运算符优先级问题, ||的优先级比=的高
我的评价:
这道题更是非常的无聊,开发几年也没在代码中见过这样的表达式,这样的表达式的意义何在???.
优先级问题可以通过()来改变嘛, 这样通用保险的作法不用,你会在实际项目中写这么无聊的表达式???
评论