each()
Einführung
Als PHP-Entwickler ist es wichtig, die verschiedenen Array-Funktionen zu verstehen, die PHP bereitstellt. Eine solche Funktion ist die each()-Funktion, die historisch verwendet wurde, um über jedes Element eines Arrays zu iterieren und das Schlüssel-Wert-Paar zurückzugeben. Hinweis: each() wurde in PHP 7.2 als veraltet markiert (deprecated) und in PHP 8.0 vollständig entfernt. Dieser Artikel erklärt das veraltete Verhalten, die Syntax und die Parameter sowie moderne Alternativen.
Syntax
Die Syntax der each()-Funktion lautet wie folgt:
Syntax der Each()-Funktion in PHP
each(array $array): array|falseDie each()-Funktion nimmt ein Array als Parameter entgegen und gibt ein Array oder im Fehlerfall false zurück.
Parameter
Die each()-Funktion nimmt nur einen Parameter entgegen, nämlich ein Array. Das Array kann entweder indiziert oder assoziativ sein. Bei einem indizierten Array sind die Schlüssel die ganzen Zahlen beginnend bei 0, und bei einem assoziativen Array sind die Schlüssel die den einzelnen Elementen zugewiesenen Schlüssel.
Verwendung
Die each()-Funktion wird verwendet, um über jedes Element eines Arrays zu iterieren und das Schlüssel-Wert-Paar zurückzugeben. Diese Funktion kann sowohl mit indizierten als auch mit assoziativen Arrays verwendet werden. Jeder Aufruf von each() bewegt den internen Arrayzeiger weiter. Die each()-Funktion gibt ein Array mit vier Elementen zurück: numerische Indizes 0 und 1 (Alias für Schlüssel und Wert) sowie String-Indizes key und value.
Hier ist ein Beispiel für die Verwendung der each()-Funktion:
Beispiel zur Verwendung der each()-Funktion in PHP
<?php
// Legacy PHP 7.x example. This will cause a fatal error in PHP 8.0+.
$array = ["one" => 1, "two" => 2, "three" => 3];
while ($element = each($array)) {
echo $element['key'] . ' => ' . $element['value'] . '<br>';
}Im obigen Beispiel definieren wir zunächst ein assoziatives Array mit drei Schlüssel-Wert-Paaren. Anschließend verwenden wir die each()-Funktion, um über jedes Element des Arrays zu iterieren und das Schlüssel-Wert-Paar zurückzugeben. Abschließend geben wir jedes Schlüssel-Wert-Paar mit einer while-Schleife aus.
Modernes PHP 8+-Äquivalent Da each() nicht mehr verfügbar ist, verwenden Sie foreach für die Array-Iteration:
<?php
$array = ["one" => 1, "two" => 2, "three" => 3];
foreach ($array as $key => $value) {
echo $key . ' => ' . $value . '<br>';
}Unterschiede zwischen each() und anderen ähnlichen Array-Funktionen
Die each()-Funktion ist anderen Array-Funktionen wie foreach(), array_walk() und array_map() ähnlich. Es gibt jedoch einige Unterschiede zwischen diesen Funktionen:
foreach()iteriert über jedes Element eines Arrays und weist den Wert einer Variablen zu. Es ändert den internen Arrayzeiger nicht und ist der empfohlene moderne Ansatz.array_walk()undarray_map()werden verwendet, um über ein Array zu iterieren und eine benutzerdefinierte Funktion auf jedes Element anzuwenden. Sie geben nicht das Schlüssel-Wert-Paar wie dieeach()-Funktion zurück.
Veralteter Status & Moderne Alternativen
Die each()-Funktion ist in modernen PHP-Versionen veraltet und entfernt. Ihre Verwendung wird nicht mehr empfohlen. Die Sprachkonstruktion foreach ist die Standard-, sicherere und leistungsfähigere Alternative zum Iterieren über Arrays in PHP 8+.
Fazit
Zusammenfassend war die each()-Funktion historisch gesehen nützlich für PHP-Entwickler, um über jedes Element eines Arrays zu iterieren und das Schlüssel-Wert-Paar zurückzugeben. Aufgrund ihrer Entfernung in PHP 8.0 sollten Entwickler jedoch für alle modernen Array-Iterationsaufgaben foreach verwenden.
Praxis
Was ist laut dem Inhalt der bereitgestellten URL über die each()-Funktion in PHP korrekt?