


PHP: Detaillierte Erläuterung der Verwendungsbeispiele für foreach und in_array
PHP ist in der Entwicklung sehr effizient, was verständlich ist, aber es geht zu Lasten der Ausführungseffizienz. PHP-Array ist sehr leistungsfähig, aber Sie sollten es auch genauer betrachten und für alle Fälle mehrere Situationen ausprobieren. Wenn Sie mehr finden, werden wir hier kurz darauf eingehen füge sie hinzu!
1. foreach bietet eine einfache Möglichkeit, das Array zu durchlaufen, mit dem der Inhalt von Daten oder Objekten leicht gelesen werden kann, aber in der offiziellen Dokumentation heißt es: Da foreach auf einem internen Array-Zeiger basiert, kann das Ändern seines Werts in einer Schleife zu unerwartetem Verhalten führen. Also grundsätzlich:
1. Versuchen Sie nicht, den Wert innerhalb der Schleife zu ändern, da das Ergebnis sonst über das gewünschte hinausgeht.
2 ist eine sichere Methode, obwohl sie selten verwendet wird Bei Verwendung sollte die unset-Funktion jedoch sofort nach dem Ende der Referenz aufgerufen werden, um die Variable zu zerstören. Andernfalls wird der letzte Wert der Schleife geändert, sodass unerwartete Werte auftreten Beispiel: Wenn die Liste durchgeschleift wird, enthält die letzte Ausgabezeile viele chaotische Werte oder Nullwerte. Die Verwendung von unset löst dieses Problem.
Sehen wir uns ein Beispiel an
<?php /*-------------------------------------------------------------------------*/ /* foreach example 1: value only */ echo "foreach example 1: value only ".'<br />'; $a = array(1, 2, 3, 17); foreach ($a as $v) { echo "Current value of ".$a.":". $v."<br />"; } ?> // 运行结果 foreach example 1: value only Current value of $a: 1 Current value of $a: 2 Current value of $a: 3 Current value of $a: 17
2. in_array,Die Bedeutung besteht darin, das vorherige < zu überprüfen 🎜 >Ob die Zeichenfolge im letzteren Array vorhanden ist, und in den meisten Fällen funktioniert es auch so, aber wenn das letztere Array eine Ganzzahl ist, wie etwa array(0,1,2,3) , Es liegt ein Problem vor. PHP intvaliert die vorherige Zeichenfolge und erhält den Wert 0. Wenn Ihr Array also zufällig diesen Wert hat, wird die Gleichung erstellt. Liegt sie über den Erwartungen?
array_flip umgekehrt werden.
Schauen wir uns noch einmal ein Beispiel anfunction search($keyWord, $stack) {//此处判断是应该更新还是插入 foreach ($stack as $key => $val) { if (in_array($keyWord, $val)) { return TRUE; } } return FALSE; }
Ich schreibe seit vielen Jahren PHP, aber ich bin immer noch auf einen gestoßen foreachDas Problem beim Verweisen auf die -Variable in >, die PHP-Version ist 5.6.12. Der Code lautet wie folgt:
<?php $arr = ['a', 'b', 'c', 'd', 'e']; foreach ($arr as $i=>&$a) { $a = $a.'_'. $a; echo $a .'<br>'; } echo '<hr>'; foreach ($arr as $i=>$a) { echo $a .'<br>'; } echo '<hr>'; print_r($arr);
Als ich anfing, das Ausgabeergebnis des zweiten foreach zu sehen, war ich sehr verwirrt. Wie konnten zwei d_d ausgegeben werden?
-Funktion außerhalb von ist Schleife ist weiterhin gültig und nicht in eine Schleife eingeschlossen,
also ist $a beim Ausführen des zweiten foreach keine neue Variable, sondern zeigt immer noch auf $arrarray5 Die Adressreferenz des Elements,
Wenn sich das zweite foreach in einer Schleife befindet, weist es tatsächlich ständig Werte dem fünften Element des $arr-Arrays zu,Spezifische Zuweisungssituation,
Das erste Mal: a_a wird dem 5. Element zugewiesen, das Ergebnis ist: [a_a, b_b, c_c, d_d,a_a]Das zweites Mal Das dritte Mal: b_b wird dem 5. Element zugewiesen, das Ergebnis ist: [a_a, b_b, c_c, d_d,b_b] Das dritte Mal: c_c wird dem 5. Element zugewiesen, das Ergebnis ist : [a_a, b_b, c_c, d_d,c_c]Das vierte Mal: d_d wird dem 5. Element zugewiesen, das Ergebnis ist: [a_a, b_b, c_c, d_d,d_d]Das fünfte Mal: zu diesem Zeitpunkt Da das fünfte Element zu d_d geworden ist und d_d dem fünften Element neu zugewiesen wurde, ist das Ergebnis immer noch: [a_a, b_b, c_c, d_d,d_d]Lösung:
1.尽量不使用相同的循环变量名;
2.每次使用完或再次使用前进行 unset($a); 处理,解除地址应用
还是用上面代码示例:
$arr = ['a', 'b', 'c', 'd', 'e']; foreach ($arr as $i=>&$a) { $a = $a.'_'. $a; echo $a .'<br>'; } echo '<hr>'; echo $a; echo '<hr>'; // 这里 unset 掉 unset($a); echo $a = 'ccc'; echo '<hr>'; print_r($arr); echo '<hr>'; foreach ($arr as $i=>$a) { echo $a .'<br>'; } echo '<hr>'; print_r($arr);
输出结果:
现在就正常了,这些小细节一定要注意了。
Das obige ist der detaillierte Inhalt vonPHP: Detaillierte Erläuterung der Verwendungsbeispiele für foreach und in_array. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

PHP 8.4 bringt mehrere neue Funktionen, Sicherheitsverbesserungen und Leistungsverbesserungen mit einer beträchtlichen Menge an veralteten und entfernten Funktionen. In dieser Anleitung wird erklärt, wie Sie PHP 8.4 installieren oder auf PHP 8.4 auf Ubuntu, Debian oder deren Derivaten aktualisieren. Obwohl es möglich ist, PHP aus dem Quellcode zu kompilieren, ist die Installation aus einem APT-Repository wie unten erläutert oft schneller und sicherer, da diese Repositorys in Zukunft die neuesten Fehlerbehebungen und Sicherheitsupdates bereitstellen.

Wenn Sie ein erfahrener PHP-Entwickler sind, haben Sie möglicherweise das Gefühl, dass Sie dort waren und dies bereits getan haben. Sie haben eine beträchtliche Anzahl von Anwendungen entwickelt, Millionen von Codezeilen debuggt und eine Reihe von Skripten optimiert, um op zu erreichen

Visual Studio Code, auch bekannt als VS Code, ist ein kostenloser Quellcode-Editor – oder eine integrierte Entwicklungsumgebung (IDE) –, die für alle gängigen Betriebssysteme verfügbar ist. Mit einer großen Sammlung von Erweiterungen für viele Programmiersprachen kann VS Code c

JWT ist ein offener Standard, der auf JSON basiert und zur sicheren Übertragung von Informationen zwischen Parteien verwendet wird, hauptsächlich für die Identitätsauthentifizierung und den Informationsaustausch. 1. JWT besteht aus drei Teilen: Header, Nutzlast und Signatur. 2. Das Arbeitsprinzip von JWT enthält drei Schritte: Generierung von JWT, Überprüfung von JWT und Parsingnayload. 3. Bei Verwendung von JWT zur Authentifizierung in PHP kann JWT generiert und überprüft werden, und die Funktionen und Berechtigungsinformationen der Benutzer können in die erweiterte Verwendung aufgenommen werden. 4. Häufige Fehler sind Signaturüberprüfungsfehler, Token -Ablauf und übergroße Nutzlast. Zu Debugging -Fähigkeiten gehört die Verwendung von Debugging -Tools und Protokollierung. 5. Leistungsoptimierung und Best Practices umfassen die Verwendung geeigneter Signaturalgorithmen, das Einstellen von Gültigkeitsperioden angemessen.

Eine Zeichenfolge ist eine Folge von Zeichen, einschließlich Buchstaben, Zahlen und Symbolen. In diesem Tutorial wird lernen, wie Sie die Anzahl der Vokale in einer bestimmten Zeichenfolge in PHP unter Verwendung verschiedener Methoden berechnen. Die Vokale auf Englisch sind a, e, i, o, u und sie können Großbuchstaben oder Kleinbuchstaben sein. Was ist ein Vokal? Vokale sind alphabetische Zeichen, die eine spezifische Aussprache darstellen. Es gibt fünf Vokale in Englisch, einschließlich Großbuchstaben und Kleinbuchstaben: a, e, ich, o, u Beispiel 1 Eingabe: String = "TutorialPoint" Ausgabe: 6 erklären Die Vokale in der String "TutorialPoint" sind u, o, i, a, o, ich. Insgesamt gibt es 6 Yuan

Dieses Tutorial zeigt, wie XML -Dokumente mit PHP effizient verarbeitet werden. XML (Extensible Markup-Sprache) ist eine vielseitige textbasierte Markup-Sprache, die sowohl für die Lesbarkeit des Menschen als auch für die Analyse von Maschinen entwickelt wurde. Es wird üblicherweise für die Datenspeicherung ein verwendet und wird häufig verwendet

Statische Bindung (statisch: :) implementiert die späte statische Bindung (LSB) in PHP, sodass das Aufrufen von Klassen in statischen Kontexten anstatt Klassen zu definieren. 1) Der Analyseprozess wird zur Laufzeit durchgeführt.

Was sind die magischen Methoden von PHP? Zu den magischen Methoden von PHP gehören: 1. \ _ \ _ Konstrukt, verwendet, um Objekte zu initialisieren; 2. \ _ \ _ Destruct, verwendet zur Reinigung von Ressourcen; 3. \ _ \ _ Call, behandeln Sie nicht existierende Methodenaufrufe; 4. \ _ \ _ GET, Implementieren Sie den dynamischen Attributzugriff; 5. \ _ \ _ Setzen Sie dynamische Attributeinstellungen. Diese Methoden werden in bestimmten Situationen automatisch aufgerufen, wodurch die Code -Flexibilität und -Effizienz verbessert werden.
