PHP Benchmark: echo
Das “echo” der Funktion “print” vorzuziehen ist, wurde schon von etlichen anderen Seiten bestätigt. Also spar ich mir mal den Vergleich mit print, vllt. komm ich ja ein andermal dazu. Folgende Codes wurden 10000 durchlaufen und das 1000 mal.
Wer’s “echo” nicht verträgt sollte seinen Browser schließen ![]()
echo '';
MIN: (0.500917ms) - AVG: (0.576797ms) - MAX: (1.579999ms)
echo "";
MIN: (0.514984ms) - AVG: (0.576492ms) - MAX: (1.597166ms)
echo 'a';
MIN: (0.596046ms) - AVG: (0.667298ms) - MAX: (1.843929ms)
echo "a";
MIN: (0.602960ms) - AVG: (0.669166ms) - MAX: (1.822948ms)
echo 'aaa';
MIN: (0.606060ms) - AVG: (0.676097ms) - MAX: (1.902103ms)
echo "aaa";
MIN: (0.624179ms) - AVG: (0.673849ms) - MAX: (1.832962ms)
Fazit
Man sollte die ‘einfachen Anführungszeichen verwenden’ wenn man nur statischen Text ausgeben möchte, da bei den doppelten Anführungszeichen PHP nach zu interpretierenden Variablen sucht. Und wer weniger schreibt ist auch klar im Vorteil, was die Geschwindigkeit angeht
Folgendes habe ich mal der Vollständigkeit halber probiert, was schon von Jan im PHP-Perfomance Bolg angesprochen wurde.
ein echo eines Array Elements ohne Anführungszeichen (falsch)
echo $array[falsch];
MIN: (5.017995ms) - AVG: (5.229190ms) - MAX: (12.83788ms)
ein echo eines Array Elements ohne Anführungszeichen (richtig)
echo $array['richtig'];
MIN: (1.062154ms) - AVG: (1.134105ms) - MAX: (2.156019ms)
Fazit
Wie Jan in seinem Beitrag schon schrieb ist es sinnvoller “sauber” zu Programmieren.
Und wenn wir beim Thema sauber schon sind, wer es streng nimmt könnte meinen das Variablen welche ausgeben bzw. in Abfragen verwendet werden auch existieren sollten, schließlich gibt PHP bei nicht gesetzter aber verwendeter Variable ein NOTICE Error aus, welcher meist aber nie angezeigt wird.
echo einer nicht gesetzten Variable
echo $nix_da;
MIN: (3.187894ms) - AVG: (3.317525ms) - MAX: (9.630918ms)
echo einer gesetzten Variable
echo $da_is_was;
MIN: (0.537157ms) - AVG: (0.608725ms) - MAX: (1.652002ms)
das ganze mal mit if Abfrage allerdings “is da nix” in der Variablen
echo isset($nix_da) ? $nix_da : '';
MIN: (0.956773ms) - AVG: (1.000232ms) - MAX: (2.885103ms)
und nochmal mit gesetzter Variable
echo isset($da_is_was) ? $da_is_was : '';
MIN: (1.220226ms) - AVG: (1.290350ms) - MAX: (3.684043ms)
