In PHP sind End () und Array_walk () zwei häufig verwendete Array -Verarbeitungsfunktionen, die für verschiedene Zwecke verwendet werden. Im tatsächlichen Codierungsprozess werden sich viele Entwickler jedoch Sorgen machen, ob sie bei gemeinsamem Einsatz in Konflikte oder Nebenwirkungen haben. In diesem Artikel werden die Prinzipien und Verwendungen dieser beiden Funktionen ausführlich untersucht und praktische Beispiele verwendet, um zu veranschaulichen, ob sie sicher zusammen verwendet werden können.
End () ist eine integrierte Funktion, die den inneren Zeiger eines Arrays auf das letzte Element bewegt und den Wert dieses Elements zurückgibt.
$array = [1, 2, 3];
$last = end($array); // zurückkehren 3
Hinweis: End () wirkt sich auf den internen Zeiger des Arrays aus.
Mit Array_WALK () können Sie jedes Element des Arrays mithilfe einer benutzerdefinierten Rückruffunktion durchführen. Es ändert weder die Struktur noch die internen Zeiger des Arrays.
$array = [1, 2, 3];
array_walk($array, function (&$value, $key) {
$value = $value * 2;
});
// $array Werden [2, 4, 6]
Die Antwort lautet: Sie kann zusammen verwendet werden und in der Regel nicht konflikt , sondern vorsichtig mit ihrem Einflussbereich.
$array = [10, 20, 30];
$last = end($array); // Zeigerzeiger 30
array_walk($array, function (&$value, $key) {
$value += 5;
});
// $array Werden [15, 25, 35]
In diesem Beispiel ändert End () die Position des internen Zeigers, aber Array_walk () beruht nicht auf den internen Zeiger, sodass kein Konflikt zwischen den beiden besteht.
$array = [
['url' => 'http://m66.net/page1'],
['url' => 'http://m66.net/page2'],
['url' => 'http://m66.net/page3']
];
array_walk($array, function (&$item, $key) use (&$array) {
$last = end($array);
echo "Aktueller Artikel URL: {$item['url']},Der letzte Artikel URL: {$last['url']}\n";
});
Dieser Code ruft in jedem Rückruf enden ($ array) . Obwohl es keinen technischen Fehler gibt, wird der interne Zeiger jedes Mal zurückgesetzt , wenn der Anruf aufgerufen wird, was die anschließende Verwendung von Current () , Weiter () , Prev () und anderen Funktionen beeinflussen kann. daher:
Es wird empfohlen, nicht häufig End () oder andere Funktionen zu verwenden, die im Rückruf von Array_Walk auf internen Zeiger beruhen.
End () wird normalerweise verwendet, um das letzte Element zu erhalten, und kann in Verbindung mit Array_walk () verwendet werden, aber versuchen Sie, es außerhalb der Rückruffunktion zu verwenden.
Wenn Sie wirklich den letzten Element im Rückruf erhalten müssen, sollten Sie direkt über Array_key_Last () in Kombination mit dem Schlüsselnamen zugreifen:
$lastKey = array_key_last($array);
$lastItem = $array[$lastKey];
Diese Methode beruht nicht auf interne Zeiger, was sicherer und effizienter ist.
End () und array_walk () können zusammen verwendet werden. Achten Sie nur darauf, nicht häufig interne Zeiger in Rückrufen zu betreiben, um logische Probleme zu vermeiden, die durch versehentliche Modifikation von Zeigern verursacht werden. Es wird auch empfohlen, Zeiger-unabhängige Methoden wie Array_key_Last () zu verwenden, um die Anforderungen des "letzten Elements" zu erfüllen.
Ich hoffe, dieser Artikel kann Ihnen dabei helfen, diese beiden Funktionen sicherer zu verwenden und robustere PHP -Code zu schreiben!