Montag, 22. Februar 2010
Bei PHP hates me gibt es zum Jubiläum des 500sten Artikel ein neues Design und einige spannende Sachen zu gewinnen.
Da ich mich gerade mit dem Zend Framework anfreunden will, von dem ich bisher noch respektvoll Abstand gehalten habe, fände ich es besonders schön, wenn ich u.a. zu den Gewinnern des Zend Framework Poster gehören würde. Natürlich würde ich mich auch über die meisten der dort genannten Bücher freuen, die alle Input für die persönliche Fortbildung verheißen. Man lernt ja nie aus.
Der zunächst etwas provokativ wirkende Satz PHP hates me kommt vermutlich jedem PHP-Entwickler hin und wieder in den Sinn. Nett aber, dass Nils das mit dem Untertitel but that’s ok! wieder ein wenig entschärft. Wenn man in verschiedenen Sprachen programmiert, bemerkt man schnell, dass das keine persönliche Abneigung einer einzelnen Sprache ist, sondern dass man halt überall mal an Ecken stößt, an denen man eine andere Reaktion, eine andere Schnittstelle oder sonst einfach „etwas anderes“ erwartet hätte. Man lernt, mit solchen „Rückschlägen“ fertig zu werden und weiter zu machen. Wenn dann jemand so frei ist, aufgefallene Besonderheiten und möglicherweise auch den einen oder anderen Lösungsansatz oder Work-Around aufzuschreiben und zu veröffentlichen, dann spart das dem einen oder anderen Kollegen hin und wieder Lebenszeit.
Ich bin eher zufällig auf das Blog aufmerksam geworden und als Stammleser geblieben. Von daher wünsche ich: Weiter so!
Und vielleicht gewinne ich ja mal was ;)
Tags: Gewinnspiel, PHP | 6 Reaktionen »
Montag, 17. September 2007
In PHP kann man Zeichenketten (Strings) auf verschiedene Arten schreiben. Die am weitesten verbreiteten sind einfache (single) und doppelte Anführungsstriche (double quotes).
Der Unterschied zwischen beiden ist (neben der offensichtlichen Optik), dass Variablennamen in durch doppelte Anführungsstriche gekennzeichneten Zeichenketten ersetzt werden, jene in einfachen Anführungsstrichen nicht.
Zur Verdeutlichung, hier ein kurzes Beispiel:
$variable = 'ipsum';
echo "Lorem $variable dolor sit amet.”
// ergibt: Lorem ipsum dolor sit amet.
echo 'Lorem $variable dolor sit amet.’
// ergibt: Lorem $variable dolor sit amet.
Offensichtlich hat der Parser/Interpreter in der ersten Variante mehr zu tun als in der zweiten, weil er bei letzterer lediglich die Eingabe wieder ausgeben muss, wohingegen im ersten Fall aktiv nach Variablen gesucht werden muss, die zu ersetzen (und dafür evtl. sogar weiterer Speicher alloziert werden muss) sind.
Aus diesem Grund habe beim Programmieren wenn möglich (also wenn keine Variablen zu ersetzen sind) immer auf die zweite Variante zurückgegriffen, um nicht mehr Arbeit als nötig zu verursachen.
Neulich kursierte aber das Gerücht (vgl. auch auf bueltge.de, bei Patrick Kempf oder im Software-Guide), dass es sich mit der Geschwindigkeit eben genau andersherum verhält und dass die “doppelte Variante” die schnellere sei. Ein Schock!.
Glücklicherweise konnte ein aufmerksamer Kommentator dieses Gerücht durch eine (statistisch aussagekräftigere) größere Schleifendauer widerlegen und meine Welt ist wieder in Ordnung. Die „einfache“ Variante ist die schnellere (auch wenn nichts zu ersetzen ist), auch wenn die Unterschiede erstaunlich gering sind.
Ergo: Wenn keine Variablen zu ersetzen sind, könnte man empfehlen, die einfachen Anführungsstriche zu nehmen, auch wenn die Laufzeitunterschiede in den meisten Anwendungen nicht besonders groß sein dürften.
Tags: Performance, PHP, Programming, Strings | 3 Reaktionen »