php foreach

Jul 28, 2016 am 08:30 AM
arrays foreach gt name

在PHP开发中,我们经常会迭代一个数组,并且修改其中的元素的值,如果我们有其它语言的经验,那么这里我们很可能就会出错。

就拿java来说,因为我对java还是比较熟悉的,在java中我们迭代一个数组,并修改其值,我们会采用如下方法:

	<span>	</span>for(Object item : objectArray){
		<span>	</span>item.setAttribute('value');
	<span>	</span>}
登录后复制

上面的代码没问题,一切都按照我们期望的来。直到我到了PHP,这几天在做一个小项目,结果发现使用和上面类似的方法修改了元素的值,竟然不起作用!使用的代码如下:
		foreach($arrays as $item){
			$item->name = 'value';	
		}
		echo $arrays[0]->name;
登录后复制

我发现输出出来的竟然是未修改之前的!

经过一番调试之后,最后猜想是不是上面的代码传的是值,而不是引用。于是去官网查看文档,发现竟然真的是这样,于是我修改代码成下面这样:

		foreach($arrays as &$item){
			$item->name = 'value';	
		}
		echo $arrays[0]->name;
登录后复制
或者是这样:
		foreach($arrays as $key=>$item){
			$arrays[$key]->name = 'value';	
		}
		echo $arrays[0]->name;
登录后复制
这两种方法运行结果都OK。于是,觉得官方文档应该多读读。当初只是大体过了一遍,并没有真正读透,就开始做项目。

参考资料:

PHP官网对foreach的解释:http://php.net/manual/en/control-structures.foreach.php

更多干货,请关注微信公众号:开发and生活

以上就介绍了 php foreach,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

<🎜>:泡泡胶模拟器无穷大 - 如何获取和使用皇家钥匙
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系统,解释
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆树的耳语 - 如何解锁抓钩
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1673
14
CakePHP 教程
1429
52
Laravel 教程
1333
25
PHP教程
1278
29
C# 教程
1257
24
华为GT3 Pro和GT4的差异是什么? 华为GT3 Pro和GT4的差异是什么? Dec 29, 2023 pm 02:27 PM

许多用户在选择智能手表的时候都会选择的华为的品牌,其中华为GT3pro和GT4都是非常热门的选择,不少用户都很好奇华为GT3pro和GT4有什么区别,下面就就给大家介绍一下二者。华为GT3pro和GT4有什么区别一、外观GT4:46mm和41mm,材质是玻璃表镜+不锈钢机身+高分纤维后壳。GT3pro:46.6mm和42.9mm,材质是蓝宝石玻璃表镜+钛金属机身/陶瓷机身+陶瓷后壳二、健康GT4:采用最新的华为Truseen5.5+算法,结果会更加的精准。GT3pro:多了ECG心电图和血管及安

Java ArrayList遍历时使用foreach和iterator删除元素的区别是什么? Java ArrayList遍历时使用foreach和iterator删除元素的区别是什么? Apr 27, 2023 pm 03:40 PM

一、Iterator和foreach的区别多态差别(foreach底层就是Iterator)Iterator是一个接口类型,他不关心集合或者数组的类型;for和foreach都需要先知道集合的类型,甚至是集合内元素的类型;1.为啥说foreach底层就是Iterator编写的代码:反编译代码:二、foreach与iterator时remove的区别先来看阿里java开发手册但1的时候不会报错,2的时候就会报错(java.util.ConcurrentModificationException)首

php如何判断foreach循环到第几个 php如何判断foreach循环到第几个 Jul 10, 2023 pm 02:18 PM

​php判断foreach循环到第几个的步骤:1、创建一个“$fruits”的数组;2、创建一个计数器变量“$counter”初始值为0;3、使用“foreach”循环遍历数组,并在循环体中增加计数器变量的值,再输出每个元素和它们的索引;4、在“foreach”循环体外输出计数器变量的值,以确认循环到了第几个元素。

使用java的Arrays.hashCode()函数计算数组的哈希码 使用java的Arrays.hashCode()函数计算数组的哈希码 Jul 25, 2023 am 08:01 AM

使用Java的Arrays.hashCode()函数计算数组的哈希码哈希码(HashCode)是一种能够唯一标识对象的整数值。在Java中,数组是一种常见的数据结构,为了方便比较和索引数组,我们经常需要计算数组的哈希码。Java提供了Arrays类的hashCode()函数,能够快速计算数组的哈希码。Arrays.hashCode()方法是一个静态方法,它接

修复:截图工具在 Windows 11 中不起作用 修复:截图工具在 Windows 11 中不起作用 Aug 24, 2023 am 09:48 AM

为什么截图工具在Windows11上不起作用了解问题的根本原因有助于找到正确的解决方案。以下是截图工具可能无法正常工作的主要原因:对焦助手已打开:这可以防止截图工具打开。应用程序损坏:如果截图工具在启动时崩溃,则可能已损坏。过时的图形驱动程序:不兼容的驱动程序可能会干扰截图工具。来自其他应用程序的干扰:其他正在运行的应用程序可能与截图工具冲突。证书已过期:升级过程中的错误可能会导致此issu简单的解决方案这些适合大多数用户,不需要任何特殊的技术知识。1.更新窗口和Microsoft应用商店应用程

PHP返回一个键值翻转后的数组 PHP返回一个键值翻转后的数组 Mar 21, 2024 pm 02:10 PM

这篇文章将为大家详细讲解有关PHP返回一个键值翻转后的数组,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。PHP键值翻转数组键值翻转是一种对数组进行的操作,它将数组中的键和值进行交换,生成一个新的数组,其中原始键作为值,原始值作为键。实现方法在php中,可以通过以下方法对数组进行键值翻转:array_flip()函数:array_flip()函数专门用于键值翻转操作。它接收一个数组作为参数,并返回一个新的数组,其中键和值已交换。$original_array=[

Java中的Arrays.copyOf()方法如何将数组复制到新的数组中? Java中的Arrays.copyOf()方法如何将数组复制到新的数组中? Nov 18, 2023 pm 01:33 PM

Java中的Arrays.copyOf()方法如何将数组复制到新的数组中?在Java中,数组是一种非常常见的数据结构,而Java的Arrays类为我们提供了许多方便的方法来处理数组。其中,Arrays.copyOf()方法是一个非常有用的方法,用于将一个数组复制到一个新的数组中。本文将介绍该方法的使用方法和实现原理,并提供具体的代码示例。使用方法Arrays

使用java的Arrays.deepHashCode()函数计算多维数组的哈希码 使用java的Arrays.deepHashCode()函数计算多维数组的哈希码 Jul 25, 2023 pm 04:16 PM

使用Java的Arrays.deepHashCode()函数计算多维数组的哈希码在Java编程中,我们经常需要比较两个对象是否相等。当涉及到多维数组时,比较数组对象的内容会变得有些棘手。在这种情况下,我们可以使用哈希码(Hashcode)来比较数组的内容。哈希码是一个唯一的整数值,用于标识对象。在Java中,我们可以使用Arrays.deepHashCod

See all articles