" oder '?
muenzchen
- php
Hallo,
Variablen in " werden ja geparst, in ' aber nicht.
Ich habe bis jetzt nie daran gedacht und immer zb. geschrieben: "Das ist ein ".$size." Ball";
Ich habe also aufgrund der Übersichtlichkeit meine Variablen sowieso immer angeknüpft. Also müsste es eigentlich effektiver sein, wenn ich es so schreibe: 'Das ist ein '.$size.' Ball';
Da PHP dann nicht extra nach Variablen in den ' sucht müsste das Skript ja eigentlich schneller ablaufen, oder?
MfG, muenzchen
Hallo, muenzchen!
http://forum.de.selfhtml.org/archiv/2004/4/78999/
http://forum.de.selfhtml.org/archiv/2003/8/54141/
freundl. Grüsse aus Berlin, Raik
Hi,
bitte benenn Dein Betreff mal sinnvoller, danke.
Da PHP sowieso nicht in '' nach Variablen sucht, läuft Dein Script auch nicht durch die Ausklammerung dieser schneller.
Selbst bei eingebetteten Vars in "" Strings wird das Script nicht langsamer, weil der PHP Parser da drüberfliegt und nicht essenziell nach Variablen sucht.
Ein deutlicher Unterschied möchte ich nicht verzeichnet wissen.
Gruss
Stefan
Hallo, Stefan!
Selbst bei eingebetteten Vars in "" Strings wird das Script nicht langsamer, weil der PHP Parser da drüberfliegt und nicht essenziell nach Variablen sucht.
irrtum. siehe den zweiten link in meinem anderen posting hierzu.
freundl. Grüsse aus Berlin, Raik
Ein deutlicher Unterschied möchte ich nicht verzeichnet wissen.
Man lernt nie aus... ;)
Danke @ Raik
Gruss
Stefan
Halihallo muenzchen
Da PHP dann nicht extra nach Variablen in den ' sucht müsste das Skript ja eigentlich schneller ablaufen, oder?
In Perl ist das absolut zu bejahen[1]. Bei PHP wahrscheinlich auch.
Zu sagen ist noch, dass der Operator '.' bei wohl beiden Sprachen
sehr viel langsamer ist, da die double-quote-strings über eine
einzelne (ggf. auch mehrere, aber eben in einem "Aufwasch") C-
Routine aufgelöst werden. Der .-Operator wird in Perl IMHO in
einen eigenständigen Opcode umgewandelt (also mehrere getrennt
ausgeführte C-Routinen). Wobei ich mir jetzt ausdenken könnte, dass
dies der Tree-Optimizer optimiert... Fakt ist und bleibt: Bei Perl
zumindest ist der '.'-Operator langsamer als ein double-quote String
und diese sind langsamer als single-quote Strings.
Zusammenfassung: (zumindest bei Perl)
schnell mittel langsam
single-quote (String-Konstante) double-quote .-Operator mit
Single-Quote
noch langsamer mit
Double-Quote
[1] _Ohne_ Verwendung von '.'-Operatoren! - Also reine String-
Konstanten.
Viele Grüsse
Philipp
Hallo Philipp,
Zusammenfassung: (zumindest bei Perl)
schnell mittel langsam
single-quote (String-Konstante) double-quote .-Operator mit
Single-Quote
noch langsamer mit
Double-Quote
Bei PHP ist es anders, siehe auch meinen Archiv-Link.
schnell mittel langsam
-----------------------------------------------------------------------
Single-Quote .-Operator mit Double-Quote mit
Double-Quote ohne Variable Single- oder Variable
Double-Quote
Viele Grüße,
Christian
Halihallo Christian
Bei PHP ist es anders, siehe auch meinen Archiv-Link.
Habe ich gelesen und es hat mich erstaunt. Hier wird IMHO der
Unterschied zwischen PHP/Perl sichtbar. Während bei Perl der .-
Operator über einen "Opcode" ausgeführt wird (wie gesagt, bin ich mir
hier nicht 100% sicher; auf jeden Fall habe ich keinen direkten
opcode dafür finden können), wird bei PHP vielleicht auf eine String-
Concattenation Funktion zurückgegriffen, welche schneller ist, als
in einem String alle sichtbaren Variablen zu ersetzen.
Egal, ich rate hier nur; es entzieht sich meinem Wissen. Aber ich
grüble nunmal sehr gerne darüber nach :-)
Danke für die Analyse. Interessant.
Viele Grüsse
Philipp