Bei der Verarbeitung von Arrays in PHP verwenden wir häufig eine Reihe von Funktionen, die interne Array -Zeiger wie Current () , Next () , Prev () , Reset () , Key () und End () betreiben, die wir heute eingehalten haben. Obwohl diese Funktionen einfach erscheinen mögen, kann ihre Leistung bei der Iterierung von Datenstrukturen oft leicht übersehen oder sogar missverstanden werden. Dieser Artikel konzentriert sich auf die Funktion End () und analysiert seine Funktionen, die gemeinsamen Verwendung, die Vorsichtsmaßnahmen und die Beziehungen zu anderen Zeigerfunktionen ausführlich.
End () ist eine Funktion, die einen internen Array -Zeiger auf das letzte Element des Arrays zeigt und den Wert dieses Elements zurückgibt. Die Syntax ist sehr einfach:
mixed end(array &$array)
Beachten Sie, dass der Parameter hier eine Referenz ( & $ $ array ) ist, die angibt, dass End () den internen Zeigerzustand des Arrays direkt beeinflusst.
$arr = [1, 2, 3, 4];
$last = end($arr);
echo $last; // Ausgabe 4
In diesem Code verschiebt End ($ arr) den inneren Zeiger des Arrays auf das letzte Element 4 und gibt ihn zurück.
Das Array von PHP ist nicht nur eine Sammlung von Schlüsselwertpaaren, sondern auch einen "internen Zeiger" für die Verfolgung der Position des aktuellen Elements, wenn foreach nicht explizit verwendet wird. Die Kernfunktion von End () besteht darin, diesen internen Zeiger auf das letzte Element des Arrays zu verweisen.
In der Praxis machen wir dies oft:
$arr = ['a' => 100, 'b' => 200, 'c' => 300];
echo current($arr); // 100
next($arr);
echo current($arr); // 200
end($arr);
echo current($arr); // 300
Sie werden feststellen , dass End () die Zeigerposition ändert und der nachfolgende Aufruf an Current () auf das letzte Element zeigt.
Um End () besser zu verstehen, vergleichen wir es mit mehreren anderen Funktionen, die Zeiger betreiben:
Funktion | Wirkung |
---|---|
zurücksetzen ($ arr) | Bewegen Sie den Zeiger auf das erste Element |
Ende ($ arr) | Bewegen Sie den Zeiger auf das letzte Element |
Weiter ($ arr) | Bewegen Sie den Zeiger um einen nach vorne |
prev ($ arr) | Bewegen Sie den Zeiger nacheinander |
Aktuell ($ arr) | Lassen Sie das Element vom aktuellen Zeiger vermittelt |
Schlüssel ($ arr) | Holen Sie sich den Schlüsselnamen des Elements, auf das der aktuelle Zeiger vermittelt wird |
Wenn Sie diese Funktionen verstehen, können Sie den Traversalprozess des Arrays flexibel steuern und nicht nur auf Foreach verlassen.
Dies ist die typischste Verwendung:
$data = ['first', 'second', 'third'];
$lastItem = end($data);
echo $lastItem; // third
$comments = [
['id' => 1, 'user' => 'Tom'],
['id' => 2, 'user' => 'Jerry']
];
$last = end($comments);
if ($last['user'] === 'Jerry') {
echo "Der letzte Kommentar ist von Jerry";
}
$mapping = ['a' => 1, 'b' => 2, 'c' => 3];
end($mapping);
$lastKey = key($mapping);
echo $lastKey; // Ausgabe c
$pages = [
'https://m66.net/page/1',
'https://m66.net/page/2',
'https://m66.net/page/3'
];
$lastPageUrl = end($pages);
echo $lastPageUrl; // https://m66.net/page/3
Wenn Sie End () und Next () Operationen im selben Array ohne Reset () im selben Array durchgeführt haben, ist die aktuelle Zeigerposition möglicherweise nicht das, was Sie erwarten, insbesondere wenn Multiplex -Array -Variablen in einer Schleife.
$empty = [];
var_dump(end($empty)); // bool(false)
Dieses Verhalten kann Probleme verursachen, wenn Sie Typen beurteilen, insbesondere wenn Sie nicht möchten, dass FALSE mit Array -Element -Werten verwechselt wird, müssen Sie === verwenden, um den Typ zu beurteilen.
$arr = [true, false];
$last = end($arr);
if ($last == false) {
echo "Der letzte Wert ist false Oder existiert nicht";
}
Die obige Schreibmethode ist anfällig für Fehler, und das kongruente Urteil sollte verwendet werden:
if ($last === false) {
echo "Es ist in der Tat false,Nicht wertlos";
}
Stellen Sie vor der Verwendung von End () sicher, dass Sie die Position des aktuellen Array -Zeigers kennen und bei Bedarf reset () aufrufen.
Vermeiden Sie es , End () in einem Array in foreach anzurufen, was zu unerwarteten Nebenwirkungen führen kann.
Möchten Sie den letzten Wert erhalten, ohne den Zeiger zu beeinflussen? Sie können array_values () oder array_key_last () verwenden, um mit der Verarbeitung zusammenzuarbeiten:
$last = array_values($arr)[count($arr) - 1];
oder:
$lastKey = array_key_last($arr);
$last = $arr[$lastKey];
Obwohl die Funktion end () klein ist, spielt sie eine wichtige Rolle bei PHP -Array -Operationen. Beherrschen Sie es und Sie können die iterative Logik des Arrays effizienter steuern und flexiblere und robustere Code schreiben. Ich hoffe, dieser Artikel kann Ihnen helfen, die Essenz und Verwendung von End () vollständig zu verstehen.