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. 【334】Python Object-Oriented Programming

    Reference: Python中self用法详解 __init__ 方法: 私有变量. Reference: [290]Python 函数 class 里面的 function 创建与此一致,只是 ...

  2. maven 中的依赖

  3. SOAP 版本可能不匹配: 出现意外的 Envelope 命名空间 http://schemas.xmlsoap.org/wsdl/

    原错误描述:SOAP 版本可能不匹配: 出现意外的 Envelope 命名空间 http://schemas.xmlsoap.org/wsdl/.应为 http://schemas.xmlsoap.o ...

  4. SpringMVC框架结构的图解、架构的处理流程以及三大组件的说明和使用

    1.1 框架结构 1.2 架构流程 1.用户发送请求至前端控制器DispatcherServlet: 2.DispatcherServlet收到请求调用HandlerMapping处理器映射器: 3. ...

  5. sql产生随机数字

    第一种:select cast(ceiling(rand() * 10) as int)第二种:select cast(ceiling(rand(checksum(newid()))*10) as i ...

  6. golang之递归

    翠花,上代码 package main import ( "fmt" "time" ) /* 递归原则,一个大问题分解成相似的小问题 定义好出口条件,否则死循环 ...

  7. string.match(RegExp) 与 RegExp.exec(string) 深入详解

    string.match(RegExp) 与 RegExp.exec(string) 相同点与不同点对比解析: 1. 这两个方法,如果匹配成功,返回一个数组,匹配失败,返回null. 2. 当RegE ...

  8. php识别二维码

    php-zbarcode 是 PHP 读取条形码的扩展模块,目前仅支持 php5.x

  9. 15 Independent Alleles

    Problem Figure 2. The probability of each outcome for the sum of the values on two rolled dice (blac ...

  10. Selenium Webdriver定位元素的几种方式

    原文:http://www.cnblogs.com/tobecrazy/p/4570494.html 工作中使用到记录一下. 主要有: 上传 alter dialog prompt dialog co ...