Heim >Backend-Entwicklung >PHP-Problem >So ändern Sie den Wert in PHP foreach

So ändern Sie den Wert in PHP foreach

藏色散人
藏色散人Original
2021-09-11 10:52:272360Durchsuche

So ändern Sie den Wert von PHP foreach: 1. Erstellen Sie eine PHP-Beispieldatei. 2. Ändern Sie sie mit „foreach($array as $k => $v){$v = 1;}“.

So ändern Sie den Wert in PHP foreach

Die Betriebsumgebung dieses Artikels: Windows7-System, PHP7.1-Version, DELL G3-Computer

Wie ändere ich den Wert von PHP foreach?

Das Problem der Verwendung von foreach zum Ändern des Werts eines Arrays

Schauen Sie sich die Seite „foreach“ der PHP-Dokumentation an und schreiben Sie Folgendes: „Die foreach-Syntaxstruktur bietet eine einfache Möglichkeit, das Array zu durchlaufen. foreach kann.“ nur auf Arrays und Objekte angewendet werden, wird eine Fehlermeldung ausgegeben, wenn Sie versuchen, es auf eine Variable eines anderen Datentyps oder eine nicht initialisierte Variable anzuwenden. Es gibt zwei Syntaxen:

foreach (array_expression as $value)
    statement
foreach (array_expression as $key => $value)
    statement

Das erste Format iteriert über das angegebene array_expression-Array Jedes Mal in der Schleife zugewiesen, bewegt sich der Zeiger innerhalb des Arrays einen Schritt vorwärts (sodass die nächste Zelle in der nächsten Schleife abgerufen wird).

Das zweite Format macht dasselbe, außer dass der Schlüsselname des Die aktuelle Zelle wird auch jedes Mal in der Schleife aktualisiert. „

Dann“ durchläuft das erste Format das angegebene array_expression-Array. In jeder Schleife wird der Wert der aktuellen Zelle zugewiesen Der Zeiger innerhalb des Arrays bewegt sich einen Schritt vorwärts (die nächste Einheit wird also in der nächsten Schleife erhalten) „Was bedeutet das?“ Dies bedeutet, dass die Verwendung von foreach zum Durchlaufen eines Arrays eine Kopie des angegebenen Arrays und nicht das Array selbst bearbeitet. Genauso wie wenn man einen Klon von sich selbst hat, egal wie andere den Klon von dir schlagen oder treten, es wird keine Wirkung auf dich haben.

Zum Beispiel:

foreach($array as $k => $v){
  $v = 1;
}

Eine solche Änderungsmethode ändert $array nicht selbst, sondern ändert ein Array, das es kopiert. Obwohl es dasselbe ist, hat es keine Auswirkung auf $array.

Also was tun? Gehen Sie dazu wie folgt vor:

foreach($array as $k => $v){
  $array[$k] = 1;
}

Obwohl $k und $v ebenfalls kopiert werden, ist der Wert des kopierten $k immer noch derselbe wie der Wert von $k im ursprünglichen Array, sodass dies erfolgreich sein wird.

Es gibt auch eine fortgeschrittenere Methode: Sie können die Elemente des Arrays einfach ändern, indem Sie & vor $v hinzufügen. Diese Methode weist einen Wert per Referenz zu, anstatt ihn zu kopieren. Zum Beispiel:

foreach($array as &$v){
  $v = 1;
}
unset($v); // 最后取消掉引用

Das wird erfolgreich sein.

Empfohlenes Lernen: „

PHP-Video-Tutorial

Das obige ist der detaillierte Inhalt vonSo ändern Sie den Wert in PHP foreach. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn