Heim  >  Artikel  >  Backend-Entwicklung  >  Was ist die Schreibmethode von PHP foreach?

Was ist die Schreibmethode von PHP foreach?

藏色散人
藏色散人Original
2021-06-24 11:25:201696Durchsuche

Es gibt zwei Möglichkeiten, foreach in PHP zu schreiben, nämlich: 1. „foreach (iterable_expression as $value)“; 2. „foreach (iterable_expression as $key => $value)“.

Was ist die Schreibmethode von PHP foreach?

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

Was ist die Schreibmethode von PHP foreach?

Die foreach-Syntaxstruktur bietet eine einfache Möglichkeit, ein Array zu durchlaufen. foreach kann nur auf Arrays und Objekte angewendet werden. Wenn Sie versuchen, es auf Variablen anderer Datentypen oder nicht initialisierte Variablen anzuwenden, wird eine Fehlermeldung ausgegeben. Es gibt zwei Syntaxen:

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

Das erste Format iteriert über den angegebenen iterable_expression-Iterator. Bei jedem Schleifendurchlauf wird $value der Wert der aktuellen Zelle zugewiesen.

Das zweite Format macht dasselbe, außer dass der Schlüsselname der aktuellen Zelle in jeder Schleife auch der Variablen $key zugewiesen wird.

Beachten Sie, dass foreach den internen Zeiger des Arrays, der von Funktionen wie current() und key() verwendet wird, nicht ändert.

Sie können das Traversierungsobjekt auch anpassen.

Sie können die Elemente eines Arrays einfach ändern, indem Sie & vor $value hinzufügen. Diese Methode weist einen Wert per Referenz zu, anstatt ihn zu kopieren.

<?php
$arr = array(1, 2, 3, 4);
foreach ($arr as &$value) {
    $value = $value * 2;
}
// $arr is now array(2, 4, 6, 8)
unset($value); // 最后取消掉引用
?>

WARNUNG

Die $value-Referenz des letzten Elements des Arrays bleibt nach der foreach-Schleife bestehen. Es wird empfohlen, unset() zu verwenden, um es zu zerstören. Andernfalls werden Sie auf die folgende Situation stoßen:

<?php
$arr = array(1, 2, 3, 4);
foreach ($arr as &$value) {
    $value = $value * 2;
}
// 现在 $arr 是 array(2, 4, 6, 8)
// 未使用 unset($value) 时,$value 仍然引用到最后一项 $arr[3]
foreach ($arr as $key => $value) {
    // $arr[3] 会被 $arr 的每一项值更新掉…
    echo "{$key} => {$value} ";
    print_r($arr);
}
// ...until ultimately the second-to-last value is copied onto the last value
// output:
// 0 => 2 Array ( [0] => 2, [1] => 4, [2] => 6, [3] => 2 )
// 1 => 4 Array ( [0] => 2, [1] => 4, [2] => 6, [3] => 4 )
// 2 => 6 Array ( [0] => 2, [1] => 4, [2] => 6, [3] => 6 )
// 3 => 6 Array ( [0] => 2, [1] => 4, [2] => 6, [3] => 6 )
?>

Sie können über die Werte von Array-Konstanten per Referenz iterieren:

<?php
foreach (array(1, 2, 3, 4) as &$value) {
    $value = $value * 2;
}
?>

Hinweis:

foreach unterstützt nicht die Möglichkeit, Fehlermeldungen mit „@“ zu unterdrücken.

Empfohlenes Lernen: „PHP-Video-Tutorial

Das obige ist der detaillierte Inhalt vonWas ist die Schreibmethode von 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