无聊的面试题
作者:edwin
日期:2015-06-29 14:19:23
所属分类:后端 - php

前段时间遇到几道好无聊的面试题,有点类似于脑筋急转弯的感觉。感觉出这几道题的人真是好无聊!


第一题

以下输出结果是什么?

$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

分析:

这道题涉及到运算符优先级问题, ||的优先级比=的高

我的评价:

这道题更是非常的无聊,开发几年也没在代码中见过这样的表达式,这样的表达式的意义何在???.

优先级问题可以通过()来改变嘛, 这样通用保险的作法不用,你会在实际项目中写这么无聊的表达式???

评论

全部评论 / 0