In diesem Artikel werden die beiden Verwendungen von PHP foreach als $key => $value vorgestellt, der einen bestimmten Referenzwert hat. Jetzt kann ich ihn mit allen teilen, die ihn benötigen
1. Einführung in die Syntax von foreach
PHP 4 und höhere Versionen enthalten die foreach-Struktur, die nur eine bequeme Möglichkeit ist, ein Array zu durchlaufen. foreach kann nur mit Arrays verwendet werden und es tritt ein Fehler auf, wenn versucht wird, es mit anderen Datentypen oder einer nicht initialisierten Variablen zu verwenden. Es gibt zwei Syntaxen, die zweite ist eine nützliche Erweiterung der ersten.
foreach(array_expression as $value) statement foreach(array_expression as $key => $value) statement
Das erste Format iteriert über das angegebene array_expression-Array. Bei jedem Durchlauf der Schleife wird $value der Wert der aktuellen Zelle zugewiesen und der Zeiger innerhalb des Arrays wird um einen Schritt vorwärts bewegt (sodass die nächste Zelle in der nächsten Schleife abgerufen wird).
Das zweite Format macht dasselbe, außer dass zusätzlich zum Wert der aktuellen Zelle in jeder Schleife auch der Schlüsselwert der Variablen $key zugewiesen wird. Schauen Sie sich den folgenden Code an:
$arr = array("1"=>"111","2"=>"222","3"=>"333"); foreach($arr as $key=>$value) { echo $key."=>".$value."\n"; }
结果如下: 1=>111 2=>222 3=>333
Der Schlüsselwert hier kann als Array-Index verstanden werden, und der Index des Array-Elements a[2] ist 2.
Wenn foreach mit der Ausführung beginnt, zeigt der Zeiger im Array automatisch auf das erste Element. Dies bedeutet, dass vor der foreach-Schleife kein Aufruf von reset() erforderlich ist. Die while-Schleife muss zurückgesetzt werden. Die beiden folgenden Codes funktionieren genau gleich.
1. Verwenden Sie die while-Schleife
$arr = array("one", "two", "three"); reset ($arr); while (list(, $value) = each ($arr)) { echo "Value: $value<br>\n"; }
2. Verwenden Sie foreach
foreach ($arr as $value) { echo "Value: $value<br>\n"; }
Beachten Sie außerdem, dass foreach eine Kopie des angegebenen Arrays betreibt. und nicht das Array selbst. Daher hat sich auch bei der Konstruktion von every() der ursprüngliche Array-Zeiger nicht geändert und der Wert der Array-Einheit wurde nicht beeinflusst.
foreach unterstützt nicht die Möglichkeit, Fehlermeldungen mit „@“ zu unterdrücken.
2. Zusammenfassung von PHP foreach
1.
Unter normalen Umständen sind $arr und $value in foreach($arr as $value) Kopien und werden nicht von externen Faktoren beeinflusst, d. h.
$arr = array(0,1,2,3,4,5); foreach($arr as $value){ $arr = array(); echo $value; }
结果是:12345
Aber Wenn $ arr eine Referenz ist, ist die Situation anders.
$arr = array(0,1,2,3,4,5); $arr = &$arr; foreach($arr as $value){ $arr = array(); echo $value; }
结果是: 0
Dies liegt daran, dass das in der Schleife verwendete $arr direkt auf die Originaldaten verweist als eine Kopie anzufertigen.
Wenn $value eine Referenz und $arr keine Referenz ist, ist das Ergebnis dasselbe, $value verweist auf die Originaldaten statt auf die Kopie
$arr = array(0,1,2,3,4,5); foreach($arr as &$value){ $arr = array(); echo $value; }
结果是: 0
Es gibt noch einen anderen Weg. Die Situation ist etwas ganz Besonderes: Wenn $arr als globale Variable definiert ist, wird $arr auch zu einer Referenz
global $arr; $arr = array(0,1,2,3,4,5); foreach($arr as $value){ $arr = array(); echo $value; }
结果是: 0
2 Wenn Sie ein Array zweimal durchlaufen , du darfst es nicht so schreiben
foreach($arr as &$value){} foreach($arr as $value){}
Dies führt dazu, dass das Ergebnis der zweiten Schleife falsch ist (vielleicht handelt es sich um einen PHP-Fehler). Sie können stattdessen Folgendes verwenden:
//solution 1 foreach($arr as &$value){} unset($value); foreach($arr as $value){} //solution 2 foreach($arr as &$value){} foreach($arr as &$value){} //solution 3 foreach($arr as &$value){} $arr2 = $arr; foreach($arr2 as $value){}
Verwandte Empfehlungen:
Detaillierte Erläuterung der Verwendung und Beispiele von foreach in PHP
Das obige ist der detaillierte Inhalt vonZwei Verwendungsmöglichkeiten von PHP foreach als $key => $value. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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

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

php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

php除以100保留两位小数的方法:1、利用“/”运算符进行除法运算,语法“数值 / 100”;2、使用“number_format(除法结果, 2)”或“sprintf("%.2f",除法结果)”语句进行四舍五入的处理值,并保留两位小数。

判断方法:1、使用“strtotime("年-月-日")”语句将给定的年月日转换为时间戳格式;2、用“date("z",时间戳)+1”语句计算指定时间戳是一年的第几天。date()返回的天数是从0开始计算的,因此真实天数需要在此基础上加1。

php判断有没有小数点的方法:1、使用“strpos(数字字符串,'.')”语法,如果返回小数点在字符串中第一次出现的位置,则有小数点;2、使用“strrpos(数字字符串,'.')”语句,如果返回小数点在字符串中最后一次出现的位置,则有。

查找方法:1、用strpos(),语法“strpos("字符串值","查找子串")+1”;2、用stripos(),语法“strpos("字符串值","查找子串")+1”。因为字符串是从0开始计数的,因此两个函数获取的位置需要进行加1处理。

在PHP中,可以利用implode()函数的第一个参数来设置没有分隔符,该函数的第一个参数用于规定数组元素之间放置的内容,默认是空字符串,也可将第一个参数设置为空,语法为“implode(数组)”或者“implode("",数组)”。


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Sicherer Prüfungsbrowser
Safe Exam Browser ist eine sichere Browserumgebung für die sichere Teilnahme an Online-Prüfungen. Diese Software verwandelt jeden Computer in einen sicheren Arbeitsplatz. Es kontrolliert den Zugriff auf alle Dienstprogramme und verhindert, dass Schüler nicht autorisierte Ressourcen nutzen.

DVWA
Damn Vulnerable Web App (DVWA) ist eine PHP/MySQL-Webanwendung, die sehr anfällig ist. Seine Hauptziele bestehen darin, Sicherheitsexperten dabei zu helfen, ihre Fähigkeiten und Tools in einem rechtlichen Umfeld zu testen, Webentwicklern dabei zu helfen, den Prozess der Sicherung von Webanwendungen besser zu verstehen, und Lehrern/Schülern dabei zu helfen, in einer Unterrichtsumgebung Webanwendungen zu lehren/lernen Sicherheit. Das Ziel von DVWA besteht darin, einige der häufigsten Web-Schwachstellen über eine einfache und unkomplizierte Benutzeroberfläche mit unterschiedlichen Schwierigkeitsgraden zu üben. Bitte beachten Sie, dass diese Software

SublimeText3 Englische Version
Empfohlen: Win-Version, unterstützt Code-Eingabeaufforderungen!

EditPlus chinesische Crack-Version
Geringe Größe, Syntaxhervorhebung, unterstützt keine Code-Eingabeaufforderungsfunktion

SublimeText3 Linux neue Version
SublimeText3 Linux neueste Version
