Sie sind hier : sebastian1012.bplaced.net/ homepage-neu / kreuz-und-quer / tutorials-info-neuigkeiten-php / gaensefuesschen-oder-hochkomma.php

Gänsefüßchen oder Hochkomma?

Im Web liest man recht oft, dass PHP-Ausgaben, die in Hochkommata eingeschlossen werden, etwas schneller gehen als die Variante in Gänsefüßchen. Eigentlich ist die Gänsefüßchen-Variante aus meiner Sicht „richtiger“ von der Syntax her, da Strings in vielen Programmiersprachen in eben diesen Zeichen eingeschlossen werden. Dort sind Singlequotes (Hochkommata) für den Datentyp char (ein einzelnes Zeichen) zuständig. Aber nicht zuletzt auf Wunsch der in den Kommentaren zur Einbettung oder Konkatenierung von Variablen in Strings möchte ich diesem Phänomen einen eigenen Beitrag widmen.

Nur, damit jeder weiß, worum es hier gehen soll:

// Doublequote-Variante echo "Hallo, der aktuelle Timestamp ist ".time().".";   //Singlequote-Variante echo 'Hallo, der aktuelle Timestamp ist '.time().'.';

Im Benchmark selbst wird ein längerer String mit mehr Variablen verwendet, damit ein signifikantes Ergebnis zustandekommt.

Das Ergebnis widerspricht vielleicht vielen Meinungen, die man im Internet so liest, aber die beziehen sich vermutlich auf frühere PHP-Versionen. In diesem Test wurde PHP 5.1 verwendet.

Datei Gesamtlaufzeit durchschnittliche Laufzeit pro Durchlauf Verhältnis zur schnellsten Variante
var_out_of_string.php 132.810973 s 13.281 ms 100 %
var_out_of_string_ singlequote.php 136.205855 s 13.621 ms 103 % (+ 3%)

Tatsächlich ist die Singlequote-Variante hier etwas langsamer. Ich selbst nutze schon lange Doublequotes, eben aus oben genannten Gründen, wie es bei anderen Programmiersprachen gehandhabt wird, weniger wegen der besseren Performance. Über die Gründe, warum Doublequotes etwas schneller sind, mag ich nicht zu mutmaßen – oder anders gesagt: ich habe keine Ahnung 😉

Diese minimalen Geschwindigkeitsvorteile sollten aber nicht zum Umschreiben vorhandener Anwendungen führen. Lediglich für die Zukunft kann man sich durchaus auf die Doublequote-Variante besinnen.

Zum Selbsttest und Nachvollziehen der Ergebnisse gibts hier noch die Quellcodes und die Benchmark-Ergebnisse.

Die abschließende Hoffnung, die ich in vielen meiner Beiträge äußere: Ich hoffe, dass ich ihr Weltbild mit diesen Äußerungen nicht verdreht habe 😉

PS: Ich habe es nochmal mit dem Komma als Konkatenierungszeichen probiert. Hier die Ergebnisse dazu:

Datei Gesamtlaufzeit durchschnittliche Laufzeit pro Durchlauf Verhältnis zur schnellsten Variante
var_out_of_string_ komma.php 132.790944 s 13.279 ms 100 %
var_out_of_string.php 138.629340 s 13.863 ms 104 % (+ 4%)

Das Komma ist demzufolge tatsächlich etwas schneller als der Punkt. Auch zu diesem „Nachtest“ gibts natürlich die Quelltexte und die Benchmarkergebnisse. Die Unterschiede zu den Zeiten in der oberen Tabelle sind darin begründet, dass ich zum Nachtest den Rechner bereits länger hab laufen lassen (den halben Arbeitstag etwa) und dadurch der Speicher schon etwas voller war. Die jeweiligen Unterschiede in den Ausführungszeiten pro Tabelle sind aber unter gleichen Bedingungen erfolgt.