Wenn Sie eine typische for
Schleife verwenden, schlägt PHPStorm vor, es für bessere Leistung zu ändern. Ich verstehe den Vorschlag nicht wirklich. Wie sollte ich es ändern?Verbessern Sie PHP 'for' Schleife
Antwort
for($i = 0; $i <= count($data); $i++){}
In diesem Beispiel muss es für jede Iteration erneut count($data)
sein.
for($i = 0, $iMax = count($data); $i <= $iMax; $i++){}
In diesem Beispiel braucht es nur zu count($data)
einmal.
Das ist der Unterschied.
Zum Vergleich siehe [diesen Beitrag] (http://Stackoverflow.com/a/12847555/2865814) –
Vermutlich geht dies davon aus, dass ' $ data' ändert die Länge innerhalb der Schleife nicht, oder die zwei wären anders. – abligh
@abligh Wenn '$ data' die Länge innerhalb der for-Schleife ändert, sollten Sie wahrscheinlich überhaupt keine for-Schleife verwenden. Ich mag jedoch voreingenommen sein, ich denke nicht, dass Sie jemals eine For-Schleife verwenden sollten. – Odalrick
Wenn Sie die count()
in Ihrem for
Schleife ausführen, dann ist es jede Iteration ausgeführt, und Aufruf der Funktion ist ein Performance-Overhead.
Wenn Sie stattdessen count()
vor dem for
Schleife aufrufen und das Ergebnis einer Variablen zuweisen, vergleichen, dann gegen die Variable in der for
Schleife, Sie haver nicht den Overhead-Funktionsaufruf, so dass es schneller
Durch die Schleife in der Art, die Sie tun, muss jede Iteration ausgewertet werden. Wenn Sie viele Elemente in der Liste haben, kann es relativ zeitaufwendig sein, diese Elemente zu zählen, und es muss jedes Mal ausgeführt werden.
Der Hinweis, es ist Tauchen Sie sind, eine Variable auf den Wert von count ($ data) am Anfang und dann verwenden Sie diese Variable als das Schleifenlimit, wenn es nur einmal ausgewertet wird.
$loopMax = count($data);
for ($i = 0; $i <= $loopMax; $i++) {
// Your code here
}
Oder
for ($i=0, $loopMax = count($data); $i <= $loopMax; $i++) {
// your code here
}
Die oberste wird offensichtlich bevorzugt, wenn Sie aus irgendeinem Grund mehrere Male iterieren. Die Unterseite ist in anderen Zeiten bevorzugt, weil Sie immer danach streben sollten, den Umfang Ihrer Variablen zu begrenzen. – corsiKa
Die Verwendung der obersten ist nicht beschränkt auf, wenn Sie es mehrmals durchlaufen werden, es wäre auch nützlich, wenn die Anwendung, sagen wir, eine Notwendigkeit hat, die Anzahl auszugeben; vielleicht für eine Paginierung oder ähnliches. Aber ja, der Umfang der Variablen sollte auf den benötigten Bereich beschränkt werden. – gabe3886
- 1. Wie PHP für die Schleife zu verbessern?
- 2. PHP for-Schleife nicht funktioniert
- 3. For Schleife mehrere Elemente PHP
- 4. PHP for-Schleife Hinzufügen Komma
- 5. Php: Verschachtelte for-Schleife nicht
- 6. PHP-Array mit for-Schleife
- 7. Wiederholen Sie eine for-Schleife
- 8. Verbessern auf Schleife-wiederholen
- 9. php gehen einmal in for Schleife zurück
- 10. Bitte helfen Sie mir for-Schleife in PHP
- 11. Führen Sie PHP-Skript mehrmals aus einer for-Schleife
- 12. PHP-While-Schleife in eine For-Schleife konvertieren
- 13. for Schleife Ergebnisse 0 - PHP Syntaxfehler?
- 14. PHP for-Schleife und Echo Elemente mit
- 15. For Schleife in PHP und Oracle
- 16. PHP for Schleife mit 2 Variablen?
- 17. Ändern foreach Schleife zu einer for-Schleife
- 18. For-Schleife in Smarty
- 19. For-Schleife Problem in JQuery
- 20. Konvertieren von erweiterten For-Schleife in For-Schleife
- 21. Stop for Schleife wiederholende Tabellen
- 22. Vergleichen Sie Wert in for-Schleife
- 23. Schreiben Sie .csv in eine for-Schleife
- 24. Brechen Sie eine for-Schleife aus C++
- 25. Machen Sie Funktionsaufrufe in For-Schleife synchron
- 26. Perl for-Schleife Erklärung
- 27. Android For-Schleife
- 28. Variable außerhalb for-Schleife
- 29. For Schleife überspringen scanf()
- 30. For Schleife Android Widgets
Was ist der PhpStorm Vorschlag klicken Sie auf, wenn Sie mehr ** **:
Dies kann auf zwei Arten geschehen? Ich bin neugierig, warum PHPStorm es vorschlägt. – jedema
gibt es nur 'Analysen für Schleifen und meldet die Verwendung blablabla' :) – simPod
' foreach' und vergessen – Kzqai