第二题

代码如下:

$i='11';
printf("%d\n",printf("%d",printf("%d",$i)));

输出结果是多少?如果你回答是11,或者111111就掉入陷阱了。
先了解printf这个函数,printf不仅是打印函数,它还有返回值。重点就在这

代码如下:
var_dump(printf("%d",$i));

你猜猜上面的结果是啥?先是printf打印变量本身11,然后printf会返回一个变量字符串长度的值,11有两个字符,于是返回2,于是上面语句的执行结果等于:

11int(2)

清楚了这一点以后,再回过来看上面的试题,按照优先级,限制性深度printf函数,打印11,返回2。接着到第二级printf函数,打印2,返回1。最后到第三层,直接打印1,所以执行结果是 1121。

第三题

代码如下:

$a = 3;
$b = 5;
if($a = 5 || $b = 7) {
$a++;
$b++;
}
echo $a . " " . $b;

执行结果是多少?如果你回答 6 8 or 4 6 or  6 6,那你就掉入陷阱了。
第一个陷阱,认为答案等于 4 6 。估计你粗心把  $a = 5 ||  $b = 7  看成 $a == 5 ||  $b == 7 ,这是新手常犯的错误。

第二个陷阱,认为答案等于 6 8。 你识破了  $a = 5 ||  $b = 7 这个骗局,但你没有注意到,逻辑或里只要依次执行直到某个表达式结果为true,表达式后边的就不再执行,$a = 5 返回true,后边的$b=7就不执行了。
第三个陷阱,认为答案等于 6 6。 OK,你识破了 逻辑或的规则,于是$a=5执行,$b=7不执行,但是你没有考虑到这里是逻辑表达式,返回给$a的值是要转换为布尔值的。这样看。

所以经过以上三个陷阱,你应该知道答案是多少了,其实 $a等于true以后,echo $a 输出就是1 ,$b值不变,结果就是 1 6 。

第四题

代码如下:

$count = 5;
function get_count() {
static $count = 0;
return $count++;
}
++$count;
get_count();
echo get_count();

执行结果是多少?如果你回答 2 ,恭喜,你掉入陷阱了。
其实这道题主要考两点,第一点是static静态类型。这种的值永远都是静态的,第一次调用声明等于0,并且自增等于1。第二次调用,1再自增就等于2。但其实这里还有一道陷阱,那就是++a与a++的区别,前++是先自增,后++是先返回值再自增,所以结果等于 1。

第五题

代码如下:

$a = count ("567")  + count(null) + count(false);
echo $a;

如果你回答 3 or 1,恭喜,掉入陷阱了。
因为count(null)等于0,false也算一个值。所以count(false)等于1。

最新文章

  1. 整理常用加密 iOS 与 Android 加密 MD5-SHA1
  2. BootStrap学习------栅格
  3. WPF的控件Binding的ElementName/RelativeSource具体用法
  4. C#通用类型转换 Convert.ChangeType 转自网络
  5. React和Backbone优缺点
  6. UVa 10288 (期望) Coupons
  7. C#学习笔记之线程 - 高级主题:非阻塞同步
  8. javascript中的原型理解总结
  9. sql分页比较简单快捷的方法
  10. slam相关知识
  11. Kubernetes使用cephfs作为后端存储
  12. 【操作教程】SequoiaDB分布式存储教程
  13. SpringEL 表达式错误记录
  14. 后台程序处理 (一)python asyncio 协程使用
  15. css 模拟radio的样式
  16. 视频信号中xyz的提取
  17. [android] 代码注册广播接收者&利用广播调用服务的方法
  18. Android为TV端助力 内存溢出与内存泄露
  19. jexus linux x64 [专业版] 安装和配置https
  20. Mysql相关技术细节整理

热门文章

  1. 安装Tomcat服务器以及错误汇总(tomcat8.0、jdk8)
  2. 不小心把服务器上的/usr/lib下的所有文件删除,恢复办法
  3. 斯特林公式求N!
  4. QMouseEvent 的坐标__Win
  5. pdf2swf+flexpaper解决pdf在线阅读(类百度文库)
  6. ajax_基础
  7. EF切换到Mysql数据库,更改web.config
  8. TCP/IP Socket 的理解
  9. 20180831_jar包冲突2_天安微信httpclient冲突
  10. HDFS超租约异常总结(org.apache.hadoop.hdfs.server.namenode.LeaseExpiredException)