Hi,
Kenne zwar PHP kaum, aber der wiederholte Zugriff auf das dasselbe Array-Element dürfte performanter laufen, wenn man eine Referenz darauf zwischenspeichert. Geht das in PHP überhaupt?
PHP kennt zwar auch Referenzen - aber der Geschwindigkeitsvorteil dürfte sich hier so stark in Grenzen halten, dass eine solche „Optimierung“ nichts bringt, aber den Code schwerer nachzuvollziehen macht.
Kann mir auch vorstellen, dass du auf die empty-Abfragen verzichten kannst, foreach macht dann halt nichts, wenn das Ding leer ist. Kann aber sein, dass foreach einen Fehler wirft, wenn man ihm keine Liste übergibt.
Ja, dann meckert foreach. Von aussen kommende Werte sollte man deshalb mit is_array() vorher prüfen.
In manchen Sprachen (z.B. C#) ist foreach auch langsamer als for, weil es mehr Möglichkeiten mitbringt und daher mehr Overhead braucht. Vielleicht ist das in PHP auch so?
Siehe oben - auch kaum relevant.
Wenn immer man wiederholt auf etwas wie bli.bla.blubb zugreifen muss, ist es z.B. in JavaScript besser, das Ding vorab zu speichern: (
var bliblablubb = bli.bla.blubb;
) und dann mit dem zwischengespeicherten Wert zu arbeiten. Leicht möglich, dass das auch für PHP gilt.
Nein, eher nicht.
Bei JavaScript sind solche Mikro-Optimierungen oftmals sinnvoll, wenn bspw. die Berechnungen des Codes sich gleich sichtbar auswirken.
In PHP hingegen ist das alles nicht von Belang - da gilt auf jeden Fall gut lesbarer Code vor Mikro-Optimierungen, die allerhöchstens im Millisekunden-Bereich was bringen, und auch das oft nur dann, wenn der Code in einer Schleife Tausende Male hintereinander ausgeführt wird.
MfG ChrisB
The most exciting phrase to hear in science, the one that heralds new discoveries, is not “Eureka!” but “That's funny...” [Isaac Asimov]