PHP中关于foreach的笔试题
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的笔试题的更多相关文章
- 一份中规中矩的 iOS笔试题
一.背景 因为一些原因,我从公司离职,在此之前,我需要帮忙招聘一个新人来做我的工作,于是就有了这篇文章. 由于公司项目16年就已经上线了,前同事写的项目中,有用xib.storyBoard.代码自动布 ...
- 2019 中细软java面试笔试题 (含面试题解析)
本人5年开发经验.18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴.今日头条.中细软等公司offer,岗位是Java后端开发,因为发展原因最终选择去了中细软,入职一年时间了,也成为了面试官 ...
- 面试中遇到的iOS笔试题
1.浅复制和深复制的区别? 2.类别的作用(category)?继承和类别在实现有何区别? 3.类别(category)和类扩展(extension)的区别. 4.obc中的协议和java中的接口概念 ...
- 【笔试题】Java 中如何递归显示一个目录下面的所有目录和文件?
笔试题 Java 中如何递归显示一个目录下面的所有目录和文件? import java.io.File; public class Test { private static void showDir ...
- 【第一期百题计划进行中,快来打卡学习】吃透java、细化到知识点的练习题及笔试题,助你轻松搞定java
[快来免费打卡学习]参与方式 本期百题计划开始时间:2022-02-09,今日打卡题已在文中标红. 0.本文文末评论区打卡,需要登录才可以打卡以及查看其他人的打卡记录 1.以下练习题,请用对应的知识点 ...
- 关于完整解答Leo C.W博客中名为“我们公司的ASP.NET 笔试题,你觉得难度如何”的所有题目
关于完整解答Leo C.W博客中名为“我们公司的ASP.NET 笔试题,你觉得难度如何”的所有题目,请大家鉴定,不足之处,敬请指教! 第1到3题解答如下: public enum QuestionTy ...
- Android开发面试经——4.常见Android进阶笔试题(更新中...)
Android开发(29) 版权声明:本文为寻梦-finddreams原创文章,请关注:http://blog.csdn.net/finddreams 关注finddreams博客:http:/ ...
- Java中有关构造函数的一道笔试题解析
Java中有关构造函数的一道笔试题解析 1.详细题目例如以下 下列说法正确的有() A. class中的constructor不可省略 B. constructor必须与class同名,但方法不能与c ...
- 一道笔试题来理顺Java中的值传递和引用传递
题目如下: private static void change(StringBuffer str11, StringBuffer str12) { str12 = str11; str11 = ...
随机推荐
- linux nohup命令使程序在后台运行的方法
在linux操作系统中从后台一直运行某个程序的方法,就是使用nohup命令了. Unix/Linux下一般比如想让某个程序在后台运行,很多都是使用 & 在程序结尾来让程序自动运行. 比如要运行 ...
- 新手C#构造函数、继承、组合的学习2018.08.06/07
构造函数,是一种特殊的方法.主要用来在创建对象时初始化对象,即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中.特别的一个类可以有多个构造函数,可根据其参数个数的不同或参数类型的不同 ...
- Windows安装MySQL教程
一.下载MySQL MySQL官网首页 --> Download --> Community --> 选择“ MySQL Community Server” 即:MySQL下载连接 ...
- 015年传智播客JavaEE 第168期就业班视频教程15-模块规范化
注册功能最起码得有个用户名和密码吧. bigint相当于Java里面的Long.Long型最大的那个数字是19位,我们这里是20位,绝对够用. userName长度预留20%,让它后期可扩展.6-12 ...
- 15.3Sum (Two-Pointers)
Given an array S of n integers, are there elements a, b, c in S such that a + b + c = 0? Find all un ...
- 温(Xue)习排序算法
最近忙着找工作,虽然排序算法用得到的情况不多,但不熟悉的话心里始终还是感觉没底. 于是今天给温习了其中的四个排序算法(与其说是温习,不如说是学习...因为感觉自己好像从来木有掌握过它们...) 一.选 ...
- Photoshop中的高斯模糊、高反差保留和Halcon中的rft频域分析研究
在Halcon的rft变换中,我们经常可以看到这样的算子组合: rft_generic (Image, ImageFFT2, 'to_freq', 'none', 'complex', Width) ...
- 静态方法调静态属性用self,$this不可以
- Linux中bash编程
bash编程也叫shell编程 预定义变量 $? 最后一次执行的命令的返回状态.如果这个变量的值为0,证明上一个命令正确的执行:如果这个变量返回的值非0(具体是那个数,有命令自己来决定 ...
- css控制同一个页面的两个表格,一个显示有边框线,而另一个没边框线
不显示边框的:<table border="0" cellspacing="0" cellpadding="" ><tr ...