一道简单的PHP笔试题(进阶必备)
发布:smiling 来源: PHP粉丝网 添加日期:2015-04-09 15:03:59 浏览: 评论:0
下文是一道简单的PHP笔试题(进阶必备)了,如果你准备去面试的话不防进入来参考这道笔试题吧。
一个前辈发了一道PHP笔试给我,题目大致如下
- $arr = array('1','2','3');
- foreach($arr as $key=>&$val){}
- foreach($arr as $key=>$val){}
- var_dump($arr);
问答案是什么?
看完我就懵了?根本不知道问题的考点在那里,看完两个foreach的区别在一个是取了地址,一个没有取地址,这样会影响结果吗?
结果输出的结果居然是如下:
- array(
- 0 => string '1' (length=1)
- 1 => string '2' (length=1)
- 2 => &string '2' (length=1)
- )
表示打印出来的数据为什么会这样?“3”去哪儿了?造成这样的原因在于:&取地址符合.
用这种方式来说明foreach对数组的读取,比较直观,然后循环就是指针的移动读取,而且由于是&取值,则直接读的是地址而是不简单的赋值,所以当第一个循环结束后,$val跟$arr[2]指的是同一个地址,所以$val值如果改变了,$arr['2']值也跟着改变了.
如果,你运行一下如下代码:
- $arr = array('1','2','3');
- foreach($arr as $key=>&$val){}
- //开源软件:phpfensi.com
- foreach($arr as $key=>$val){
- var_dump($arr);
- }
- var_dump($arr);
你就能看到变化的过程,和得到之前结果的原因.
Tags: PHP笔试题 PHP进阶必备
- 上一篇:腾讯php部分面试题答案
- 下一篇:PHP面试中常见的面试试题与算法例子
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)