1,php与C++的不同之处是PHP中变量没有局部作用域,只有函数作用域和全局作用域。如下函数,在php中,$name的作用域是函数test();在C++中$name的作用域是for循环体,for循环体结束,$name失效。以上代码,在php正常运行,在C++中报错。

<?php
function test(){
for($i = 0; $i < 3; $i++){
$name = 'xiaowang';
}
echo $name;
}
?>

2, 实例

<?php
$a = array('a','b','c');
foreach($a as &$v){ } foreach($a as $v){ }
var_dump($a);

结果应该打印出:

array(3) { [0]=> string(1) "a" [1]=> string(1) "b" [2]=> &string(1) "b" }

解析:1,先了解下foreach循环,foreach($a as $b),

(1)在第一次循环时候,定义一个变量$b,并将$a[0]的值赋给$b,$b=$a[0];

(2)在第二次循环时候,将$a[1]的值赋给$b,$b=$a[1];

(3)在第三次循环时候,将$a[2]的值赋给$b,$b=$a[2];

2,那么以上程序:

foreach($a as &$b),

(1)在第一次循环时候,定义引用$b ,并为其赋值,使其成为$a[0]的别名,$b= &$a[0];

(2)在第二次循环时候,为引用$b赋值,使其成为$a[1]的别名,$b=&$a[1];

(3)在第三次循环时候,为引用$b赋值,使其成为$a[2]的别名,$b=&$a[2];

循环结束后,此时$b是$a[2]的别名,可以这么理解,变量$b和变量$a[2]共用同一个内存区域。

foreach($a as $b)

(1)在第一次循环时候,将$a[0]的值赋值给$b,即赋值给$a[2],$a[2] = $a[0],此时数组 a b a;

(2)在第二次循环时候,将$a[1]的值赋值给$b,即赋值给$a[2],$a[2] = $a[1],此时数组 a b b;

(3)在第三次循环时候,将$a[2]的值赋值给$b,即赋值给$a[2],$a[2] = $a[2],此时数组 a b b;

PHP中关于foreach的笔试题的更多相关文章

  1. 一份中规中矩的 iOS笔试题

    一.背景 因为一些原因,我从公司离职,在此之前,我需要帮忙招聘一个新人来做我的工作,于是就有了这篇文章. 由于公司项目16年就已经上线了,前同事写的项目中,有用xib.storyBoard.代码自动布 ...

  2. 2019 中细软java面试笔试题 (含面试题解析)

      本人5年开发经验.18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴.今日头条.中细软等公司offer,岗位是Java后端开发,因为发展原因最终选择去了中细软,入职一年时间了,也成为了面试官 ...

  3. 面试中遇到的iOS笔试题

    1.浅复制和深复制的区别? 2.类别的作用(category)?继承和类别在实现有何区别? 3.类别(category)和类扩展(extension)的区别. 4.obc中的协议和java中的接口概念 ...

  4. 【笔试题】Java 中如何递归显示一个目录下面的所有目录和文件?

    笔试题 Java 中如何递归显示一个目录下面的所有目录和文件? import java.io.File; public class Test { private static void showDir ...

  5. 【第一期百题计划进行中,快来打卡学习】吃透java、细化到知识点的练习题及笔试题,助你轻松搞定java

    [快来免费打卡学习]参与方式 本期百题计划开始时间:2022-02-09,今日打卡题已在文中标红. 0.本文文末评论区打卡,需要登录才可以打卡以及查看其他人的打卡记录 1.以下练习题,请用对应的知识点 ...

  6. 关于完整解答Leo C.W博客中名为“我们公司的ASP.NET 笔试题,你觉得难度如何”的所有题目

    关于完整解答Leo C.W博客中名为“我们公司的ASP.NET 笔试题,你觉得难度如何”的所有题目,请大家鉴定,不足之处,敬请指教! 第1到3题解答如下: public enum QuestionTy ...

  7. Android开发面试经——4.常见Android进阶笔试题(更新中...)

      Android开发(29)  版权声明:本文为寻梦-finddreams原创文章,请关注:http://blog.csdn.net/finddreams 关注finddreams博客:http:/ ...

  8. Java中有关构造函数的一道笔试题解析

    Java中有关构造函数的一道笔试题解析 1.详细题目例如以下 下列说法正确的有() A. class中的constructor不可省略 B. constructor必须与class同名,但方法不能与c ...

  9. 一道笔试题来理顺Java中的值传递和引用传递

      题目如下: private static void change(StringBuffer str11, StringBuffer str12) { str12 = str11; str11 = ...

随机推荐

  1. Thymeleaf 标准表达式语法

    变量表达式${ } 在控制器中往页面传递几个变量: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 @Controller public class IndexController ...

  2. python初步要点II

    [python初步要点II] 1.is & is not 操作符用于测试2个对象是否指向同一个对象,即 id(a) == id(b). 2.整形和字符串对象是不可变对象,python会高效地缓 ...

  3. Windows NT

    ---------siwuxie095                 Windows NT,全称 Microsoft Windows New Technology     (无关小贴士:NTFS 全 ...

  4. PEAR

    简介:pear是php扩展与应用库(the php extension and application repository)的缩写.它是一个php扩展及应用的一个代码仓库. 编码规范:参考(http ...

  5. 获取openid回调两次

    解决了好久,请教了各路大神也没找到解决方案. 最后灵感一现,是不是参数顺序问题?按照官网示例的先后顺序从新调用了一次,回调一次,成功解决. 官网文档:https://mp.weixin.qq.com/ ...

  6. 利率计算v2.0--web版--软件工程

    .客户说:帮我开发一个复利计算软件. .如果按照单利计算,本息又是多少呢? .假如30年之后要筹措到300万元的养老金,平均的年回报率是3%,那么,现在必须投入的本金是多少呢? .利率这么低,复利计算 ...

  7. JAVA里的CAS算法简析

    Atomic 从JDK5开始, java.util.concurrent包里提供了很多面向并发编程的类. 使用这些类在多核CPU的机器上会有比较好的性能.主要原因是这些类里面大多使用(失败-重试方式的 ...

  8. 全球顶尖大学的UX课程资源,英文!

    本文由MOCKPLUS团队原创,转载请标明出处,原型设计工具就用更快.更简单的mockplus 要想成为一名优秀的UX设计师,需要掌握很多必备技能.比如,掌握用户体验设计的所有知识和信息架构(易用性方 ...

  9. iOS6后的内存警告处理

    [iOS6后的内存警告处理] The memory used by a view to draw itself onscreen is potentially quite large. However ...

  10. IP多播技术及其应用

    随着全球互联网(Internet)的迅猛发展,上网人数正以几何级数快速增长,以因特网技术为主导的数据通信在通信业务总量中的比列迅速上升,因特网业务已成为多媒体通信业中发展最为迅速.竞争最为激烈的领域. ...