Heute gibt es mal wieder einen Beitrag zur Optimierung von PHP Anwendungen von mir. Und zwar geht es darum, welche Schleife man am besten nutzt, wenn man eine bestimmte Anzahl an Durchläufen haben möchte. In meinem Fall soll nun von 1 bis 10.000 gezählt und diese Zahl ausgegeben werden.
Dafür gibt es 3 Möglichkeiten:
- die for-Schleife:
1 2 3
for($i=1;$i<=100000;$i++){ echo $i; }
- die while-Schleife:
1 2 3 4 5
$i = 1; while($i<=100000){ echo $i; $i++; }
- die do-while Schleife:
1 2 3 4 5
$i = 0; do{ $i++; echo $i; } while($i<=100000);
Jede der Schleifen hat zu bestimmten Einsatzzwecken seine Vor- und Nachteile. Jedoch geht es hier nur um die Zählung der Durchläufe.
Bei der einfachen Zählung, wie hier der Fall, ist die for-Schleife meiner Ansicht nach die eleganteste Methode, da man diese am einfachsten Lesen kann. Dort sagt man bereits bei der Definition von der Schleife, dass $i immer um eins erhöht werden soll, bei den anderen muss man dieses extra in dem Codeblock unterbringen. So lässt es sich auf jeden Fall deutlich einfacher lesen, ohne in dem Code zu suchen, wie gezählt wird, was bei der while- und der do-while-Schleife der Fall ist.
Ich habe nun überprüft welche dieser Schleifen diese Aufgabe am schnellsten absolviert, und bin von dem Ergebnis ziemlich überrascht. Aber guckt es euch selber an:
Benchmark Schleifen
| Was? | Laufzeit in s | Verhältnis zum Schnellsten |
|---|---|---|
| do-while-Schleife | 0.0731408596039 | 100% |
| while-Schleife | 0.0768280029297 | 105% |
| for-Schleife | 0.0883860588074 | 120.8% |
Ich war bis jetzt immer in dem Glauben, dass die for-Schleife am schnellsten ist, da sie zu diesem Zweck am häufigsten verwendet wird. So kann man sich täuschen *g*
Aber da die Laufzeitunterschiede nicht die allergrößten sind, werde ich für diesen Zweck auch weiterhin die for-Schleife benutzen, da diese doch für deutlich mehr Übersichtlichkeit im Code sorgt.

