php面试题(二)

1

<?php
echo count (false);
$a = count ("567")  + count(null) + count(false);
echo $a;
?>
答案:2.
考查:count的用法。
因count()的官方解释“If the parameter is not an array or not an object with implemented Countable 
interface, 1 will be returned.”.意思是说,如果不是数组或者对象的其他类型,返回1.那么这个值应该就是1+0+1了
(boolen人家也是一个类型,虽然是讨厌的false)。NULL的意思是没有值,难道在计数函数中还能有1?

2

<?php
$arr = array(1,2,3);
foreach($arr as &$val) {
    $val += $val % 2 ? $val++ : $val--;
}
$val = 0;
print(join('',$arr));
?>
答案:330。
考查:++和&。
因foreach结束后的数组应该是array(3,3,7);最后给第三个元素赋值为0,所以就是330了。其中注意的是&,如果有&则是对
原变量操作,如果没有,则是先生成一个新变量,然后给这个变量复制,最后操作的是这个新变量。

3

<?php
echo intval((0.1+0.7)*10);
?>
答案:7。
考查:浮点数的概念。
因0.1+0.7=0.8    0.8*10=8  所以转换成整数后还是8?错!因为0.1+0.7=0.8是浮点数,0.8*10在数学计算中是正整数8,
可是在计算机中它仍然是浮点数8,什么叫浮点数8?每一个看起来像整数的浮点数,其实都不是整数,比如这个8,它其实只是
7.9999循环,无限接近于8,转换成整数会舍弃小数部分,就是7喽。

4

<?php
ini_set('display_errors',0);
$arr = array(1=>1,3=>3);
$i = 2;
$a = 'test' . isset($arr[$i]) ? $arr[$i] : $i;
请问$a的值是什么?
A、test B、NULL C、2 D、test2
?>
答案:B。
考查:优先级。
因“."的优先级高于三元运算符"?:"。所以程序其实报错了。会说$arr的索引2不存在。

5

<?php
$a = 3;
$b = 5;
if($a = 5 || $b = 7) {
    $a++;
    $b++;
}
echo $a . " " . $b;
?>
A、6 8  B、6 6  C、2 6  D、1 6  E、4 6
答案:D。
考查:优先级,基础概念,++。
因“="的优先级低于“||”,所以先逻辑判断再赋值。也就是($a = (5 || $b = 7))。所以,最后其实给a赋值了,$a等于1.

6

<?php
$x = 2;
echo $x == 2 ? '我' : $x == 1 ? '你' : '它';
?>
输出的结果是()
A、我
B、你
C、它
D、syntax error
答案:B。
考查:优先级。
因“=="的优先级高于“?:”。我已经不想说为什么了,整理一下这种东西,我感觉要疯了,除了笔试题外估计也不会遇到了吧。

原文发布于微信公众号 - php(phpdaily)

原文发表时间:2016-06-09

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Android-薛之涛

Android-List闲聊

 相信小伙伴们经常在项目中用到ArrayList和LinkList吧,那你们知道他们的区别吗?什么场合下适合选用那个集合吗?我们来了解一下。

1043
来自专栏鬼谷君

Python 元组知识点

1373
来自专栏机器学习实践二三事

python中的装饰器

很多时候我们可能会有这样的需求,就是在调试的时候我们会想打印出某些变量出来看看程序对不对,然后在我们调试好了的时候再把这些print语句注释;这样做确实比较麻烦...

18610
来自专栏Crossin的编程教室

【Python 第24课】 if的嵌套

和for循环一样,if也可以嵌套使用,即在一个if/elif/else的内部,再使用if。这有点类似于电路的串联。 if 条件1: if 条件2: ...

2846
来自专栏owent

POJ PKU 2549 Sumsets 解题报告

题目链接http://acm.pku.edu.cn/JudgeOnline/problem?id=2549

671
来自专栏海天一树

2018 TCO Algorithm-Round 1B 600-points题解报告

Consider the set of integers between 1 and n, inclusive, and two positive intege...

683
来自专栏海天一树

小朋友学C语言(24):位运算符

位运算符有三个:“与(&)”、“或(|)”、“异或(^)”。 在了解位运算符之前,请先复习逻辑运算符: 小朋友学C语言(12):逻辑运算符 位运算,就是对应的b...

2868
来自专栏云霄雨霁

排序----希尔排序

1270
来自专栏玄魂工作室

如何学python 第十二课 逻辑运算符-成员运算符

第十二课 逻辑运算符-成员运算符 上一节我们介绍了元组和字典。这节课我们讨论点别的,逻辑运算符和成员运算符(有些人也把这个翻译成身份运算符)。他们和布尔类型紧密...

3195
来自专栏程序员互动联盟

【面试宝典】写一个函数将两个数交换

没有参加过面试的同学可能会很忐忑,面试都会出些什么题呢?其实一般情况下,大部分的面试题都是比较基础的。关于如何交换两个数字,应该是非常简单的问题了。看下面几个函...

3328

扫描关注云+社区