| 

.NET C# Java Javascript Exception

5
Moin allerseits.

Ich habe soeben gelesen, dass ab PHP5 Strings in doppelten Anführungsstrichen schneller ausgeführt werden als in einfachen (sofern in den doppelten keine Variablen vorhanden sind etc.).
Woran kann das liegen?

Wie verwendet ihr generell Strings? Ich verwende z.B. für sämtliche HTML-Ausgaben verkettete Strings mit einfachen Anführungszeichen. Für alle mySQL-Ausdrücke verwende ich Strings mit doppelten Anführungszeichen, weil fast immer Variablen darin vorkommen. Dadurch ist der Code relativ leserlich.
Würdet ihr das auch so empfehlen, oder sollte man das anders handhaben?

Verkettungen durch Kommata ersetzen kann ich nicht, da ich keine direkten Echos ausführe sondern immer erst in Variablen speichere.
15.03.2012
johny7 521 1 8
3 Antworten
1
Ich kann Dir keine Zahlen mehr nennen, aber wir haben das mal mit einigen Beispielen probiert (Zeiten verglichen). Da waren die doppelten Anführungszeichen tatsächlich minimal schneller. Aber im Gesamtkontext einer Applikation was das immer absolut vernachlässigbar.

Ich verwendet in PHP meistens die einfachen Anführungezeichen, weil ich schon mal versehentlich Variablen zwischen doppelten Anführungszeichen stehen hatte. ;) Da - je nach IDE - die Variablen im String nicht beim Syntaxhighlighting berücksichtigt werden, nutze ich nie Variablen zwischen doppelten Anführungszeichen.

Ansonsten sollte es für solche Fragen im Team einen Coding Standard geben ... ;) (egal wie der nun aussieht)

Für mySQL kannst Du Dir ja mal die Prepared Statements (PDO) anschauen. Damit könntest Du gleich die Sicherheit erhöhen (besserer Schutz von SQL Injections).

Ciao,
Mike
15.03.2012
Xantiva 2,3k 2 9
1
Moin zusammen,
das Gegenteil ist der Fall.
Doppelte Anführungszeichen verlängern minimal die Laufzeit. Das liegt daran, dass PHP vor der Ausführung den String analysiert und prüft ob ggfls. Variablen darin enthalten sind die interpretiert werden müssen.

Beispiel:
$var = 'variable';
$a = "ja hier ist eine $var enthalten";
echo $a;
==> ja hier eine variable enthalten
$a = 'ja hier ist eine $var enthalten';
echo $a;
==> ja hier eine $var enthalten


Bei einfachen Anführungszeichen entfällt diese Analyse weil Variablen darin nicht verarbeitet sondern als Zeichenkette angezeigt werden.

Ich habe mir die einfachen Anführungszeichen angewöhnt. Das hat bei mir allerdings nicht wirklich was mit Performance zu tun. Außerdem verwende ich IMMER FORMATED STRINGS, also sprintf(), der Lesbarkeit wegen. Was aber die Laufzeit im Gegensatz zu verketteten Strings aber erhöhen dürfte.
Im Normalfall ist bei PHP nicht die Stringverarbeitung das Nadelöhr in der Applikation. Da dürften wohl IO und Datenbankzugriffe mehr Optimierungsbedarf haben

Gruß Jens
16.03.2012
XJenso 322 7
1
Doppelte oder einfache Anführungsstriche: das ist egal (oder mache würden sagen: Glaubenskrieg). Ich habe das paar mal auf verschiedenen Servern getestet (hat mich selber interessiert), Doppelte waren wirklich paar ms schneller, weiss aber nicht mehr wie viel und warum - war aber auf jeden Fall vernachlässigbar.
Wichtiger ist das ihr das konsequent durchzieht - egal welche Variante.
Ich persönlich versuche PHP möglichst HTML frei zu halten.
16.03.2012
Jaksa 4,0k 1 8
Jaksa 4,0k 1 8

Stelle deine Php-Frage jetzt!