PHP中foreach有关引用的问题
软件开发的过程中,细节处理非常重要,说得大一点就是细节决定成败,别人不懂的地方,你懂,别人没注意到的细节,你注意到了,这就是你胜出对方的地方,这样就体现出了你的价值。
下面是几个foreach循环中引用相关的例子,有时候去一家公司面试的时候有可能会遇到类似的笔试题。
//test1
$items = array(1,2,3,4,5);
foreach ($items as &$item1) {
echo "item1: $item1" . l;
}
$item1 = 3;
print_r($items);
foreach ($items as $item2) {
echo "item2: $item2" . l;
} //test2
$arr = array("1"=>"111","2"=>"222","3"=>"333");
foreach($arr as $key=>$value)
{
echo $key."=>".$value."\n";
$key = &$arr[$key];
print_r($arr);
}
//test3
$arr = array("1"=>"111","2"=>"222","3"=>"333");
foreach($arr as $key=>$value)
{
$key = &$arr[$key];
$key = "hello";
unset($key);
print_r($arr);
}
输出如下:
输出如下:
test1
item1: 1
item1: 2
item1: 3
item1: 4
item1: 5
Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 4
[4] => 3
)
item2: 1
item2: 2
item2: 3
item2: 4
item2: 3 test2
1=>111
Array
(
[1] => 111
[2] => 222
[3] => 333
)
2=>222
Array
(
[1] => 2
[2] => 222
[3] => 333
)
3=>333
Array
(
[1] => 2
[2] => 3
[3] => 333
) test3
Array
(
[1] => hello
[2] => 222
[3] => 333
)
Array
(
[1] => hello
[2] => hello
[3] => 333
)
Array
(
[1] => hello
[2] => hello
[3] => hello
)
延伸阅读:
http://www.baidu.com/s?wd=php%20foreach%20引用
http://www.sogou.com/web?query=php%20foreach%20引用
http://www.so.com/s?q=php%20foreach%20引用
http://blog.sina.com.cn/s/blog_6e322ce70100xx1t.html
PHP中foreach有关引用的问题的更多相关文章
- php中foreach使用引用的陷阱
有时候我们为了在循环过程中改变数组项的值,在foreach的时候变量入口可以加个&符合, 表示,循环过程中使用数组中原来的值,而不是一个复制的值,如 foreach ($array as &a ...
- PHP中的&传值引用的问题,在foreach循环的结果能帮解释下输出的结果原理是什么?
PHP中的&传值引用的问题,在foreach循环的结果能帮解释下输出的结果原理是什么? 代码如下: <?php $arr = array('one','two','three'); fo ...
- JavaScript中forEach的用法相关
首先说下JavaScript的forEach的标准格式. 为数组中的每个元素执行指定操作. array1.forEach(callbackfn[, thisArg]) 参数 定义 array1 必需. ...
- PHP和Java中foreach循环的用法区别
1.foreach语句介绍: ①PHP: foreach 语法结构提供了遍历数组的简单方式.foreach 仅能够应用于数组和对象,如果尝试应用于其他数据类型的变量,或者未初始化的变量将发出错误信息. ...
- php中foreach源码分析(编译原理)
php中foreach源码分析(编译原理) 一.总结 编译原理(lex and yacc)的知识 二.php中foreach源码分析 foreach是PHP中很常用的一个用作数组循环的控制语句.因为它 ...
- Java 8 中的方法引用,轻松减少代码量,提升可读性!
1. 引言 Java8中最受广大开发中喜欢的变化之一是因为引入了 lambda 表达式,因为这些表达式允许我们放弃匿名类,从而大大减少了样板代码,并提高了可读性. 方法引用是lambda表达式的一种特 ...
- 『动善时』JMeter基础 — 40、JMeter中ForEach控制器详解
目录 1.什么是逻辑控制器 2.ForEach控制器介绍 3.ForEach控制器的使用 (1)测试计划内包含的元件 (2)获取学院列表请求内容 (3)JSON提取器内容 (4)ForEach控制器内 ...
- 重新想象 Windows 8.1 Store Apps (81) - 控件增强: WebView 之加载本地 html, 智能替换 html 中的 url 引用, 通过 Share Contract 分享 WebView 中的内容, 为 WebView 截图
[源码下载] 重新想象 Windows 8.1 Store Apps (81) - 控件增强: WebView 之加载本地 html, 智能替换 html 中的 url 引用, 通过 Share Co ...
- ecshop中foreach的详细用法归纳
ec模版中foreach的常见用法. foreach 语法: 假如后台:$smarty->assign('test',$test); {foreach from=$test item=list ...
随机推荐
- windows7 下安装使用memcached
Memcached 安装使用 本地环境:Windows7 64位web环境:wamp集成环境,php版本:PHP Version 7.1.17 学习参考网站: RUNOOB.COM官网 http:/ ...
- PAT (Advanced Level) 1036. Boys vs Girls (25)
简单题. #include<iostream> #include<cstring> #include<cmath> #include<algorithm> ...
- CodeForces 599B Spongebob and Joke
简单题. #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> ...
- Ultra-QuickSort--POJ2299(归并排序求逆序数对)
http://poj.org/problem?id=2299 归并排序:比如现在有一个序列[l,r),我们可以把这个序列分成两个序列[l,mid),[mid,r),利用递归按照上 述方法逐步缩小序列, ...
- loj6165 一道水题(线性筛)
题目: https://loj.ac/problem/6165 分析: 最直接的想法就是把1~n的所有数分解质因数,然后每个素数的幂取max 我们首先来看看一共可能有哪些素数? 实际上这些素因数恰好就 ...
- Java面试题总结之Java基础(二)
Java面试题总结之Java基础(二) 1.写clone()方法时,通常都有一行代码,是什么? 答:super.clone(),他负责产生正确大小的空间,并逐位复制. 2.GC 是什么? 为什么要有G ...
- EF关联
public CustomerMap() { this.ToTable("Customer"); this.HasKey(c => c.Id); this.Property( ...
- dnsmasq possible DNS-rebind attack detected错误
最近在做openwrt的平台,dns使用的是dnsmasq,但是通过板子上网,将PC的dns设置成板子的时候,发现百度等都可以,但是公司邮箱打不开.公司邮箱的域名 xx-xx-notes.xxx.co ...
- 当Eclipse爱上SVN
推荐使用:Subclipse :http://jingyan.baidu.com/article/1612d5007d41e9e20e1eeeff.html 为离线安装做准备: 1.下载Subver ...
- 是男人就下100层【第四层】——Crazy贪吃蛇(2)
在上一篇<是男人就下100层[第四层]--Crazy贪吃蛇(1)>中我们让贪吃蛇移动了起来,接下来我们来实现让贪吃蛇能够绕着手机屏幕边线移动而且能够改变方向 一.加入状态并改动代码 首先我 ...