String und Variable verknüpfen
Klaus
- php
Was ist "besser'?
echo 'text1'.$variable.'text2';
oder
echo "text1 $variable text2";
Klaus
Was ist "besser'?
echo 'text1'.$variable.'text2';
oder
echo "text1 $variable text2";
Klaus
Ich machs immer per
echo 'text1'.$variable.'text2'
Hallo,
Was ist "besser'?
echo 'text1'.$variable.'text2';oder
echo "text1 $variable text2";
Das zweite ist meiner Ansicht nach nicht so 'toll', weil wenn du eine Ausgabe, wie
echo 'Hallo lieber '.htmlspecialchars($name);
machen willst, ist das mit den ' immer besser.
Ich machs immer per
echo 'text1'.$variable.'text2'
Ich auch. :P
MfG
Ich machs immer per
echo 'text1'.$variable.'text2'
Ich auch. :P
Ich auch. :P
Moin!
Was ist "besser'?
echo 'text1'.$variable.'text2';
In diesem Fall ^^^ baut PHP erst einen String aus einzelnen Bestandteilen zusammen, bevor es diesen ausgibt.
oder
echo "text1 $variable text2";
In diesem Fall ^^^ wird vor der Ausgabe erst der String ausgewertet, d.h. der Wert von $variable
in den String eingefügt.
Im folgenden Fall gibt PHP allerdings die einzelnen Bestandteile hintereinander aus, ohne irgendwelche (möglicherweise teuren) Stringoperationen durchzuführen:
echo 'text1', $variable, 'text2';
Viele Grüße,
Robert
Im folgenden Fall gibt PHP allerdings die einzelnen Bestandteile hintereinander aus, ohne irgendwelche (möglicherweise teuren) Stringoperationen durchzuführen:
echo 'text1', $variable, 'text2';
Sehr interessant!
Ich habe selbst mal Performance-Tests mit Strings gemacht, um den Unterschied bei der Verwendung von einfachen und doppelten Anführungszeichen festzustellen: Es bedarf zwar einer "Ueberwindung", die Anführungszeichen nicht wie in anderen Programmiersprachen (C/C++, Java) für verschiedene Zeichentypen (char, String) zu nutzen, aber der Geschwindigkeitsgewinn sollte das wieder ausgleichen.
echo $begrüßung;
Ich habe selbst mal Performance-Tests mit Strings gemacht, um den Unterschied bei der Verwendung von einfachen und doppelten Anführungszeichen festzustellen: Es bedarf zwar einer "Ueberwindung", die Anführungszeichen nicht wie in anderen Programmiersprachen (C/C++, Java) für verschiedene Zeichentypen (char, String) zu nutzen, aber der Geschwindigkeitsgewinn sollte das wieder ausgleichen.
Wie sah der Test genau aus? Und vor allem mit wievielen Durchläufen hast du signifikante Unterschiede festgestellt? Und wieviel Datenmenge wird dabei erzeugt? Denn diese müsstest du eigentlich auch noch zum Client transportieren, wenn der Test einigermaßen realistisch sein soll.
echo "$verabschiedung $name";
Hallo!
Es ist schon einige Zeit her; da es mir nur um die Feststellung ging, ob die beiden verschiedenen Schreibweisen unterschiedliche Ausführungszeiten erzeugen, kann ich die genauen Parameter nicht nennen. Der Test wurde direkt auf dem Webserver gemacht (d.h. die gleiche Maschine, auf der auch die PHP-Scripts liegen -> minimale Einfluss durch dazwischenliegende Prozesse).
Selbstverstaendlich habe ich eine entsprechend hohe Anzahl an Aufufen erzeugt, um einen nachvollziehbaren Unterschied feststellen zu koennen; dabei habe ich auch die Anzahl der parallelen Zugriffe variiert (wie gesagt, die genauen Zahlen weiss ich nichtmehr; entweder waren es 100 oder 1000 Zugriffe und 10 oder 100 parallel laufend).
Die Datenmenge spielt eher eine geringe Rolle (ich habe nur wenige Zeichenkettenoperationen ausgefuehrt; man koennte die Anzahl durchaus erhoehen, um den Overhead, der durch das Aufrufen des Scripts entsteht, zu reduzieren). Die Uebertragungszeit zum Client (wobei es wohl auf die Definition von "Client" in der Kette ankommt; ich gehe bei Deiner Anmerkung bei "Client" von einem Browser aus) ist m.E. irrelevant. Im Gegenteil, dies wuerde den Test doch eher verfaelschen.
echo $begrüßung;
Selbstverstaendlich habe ich eine entsprechend hohe Anzahl an Aufufen erzeugt, um einen nachvollziehbaren Unterschied feststellen zu koennen; [...]
Die Datenmenge spielt eher eine geringe Rolle [...] Die Uebertragungszeit zum Client [...] ist m.E. irrelevant. Im Gegenteil, dies wuerde den Test doch eher verfaelschen.
Es würde den Test praxistauglicher macht. Wozu führst du überhaupt so viele Stringoperationen aus, wenn du deren Ergebnis nicht brauchst? Nur um einen Ausführungsunterschied festzustellen, der bei normalem Gebrauch nicht weiter ins Gewicht fällt?
echo "$verabschiedung $name";
Hallo!
Es würde den Test praxistauglicher macht. Wozu führst du überhaupt so viele Stringoperationen aus, wenn du deren Ergebnis nicht brauchst? Nur um einen Ausführungsunterschied festzustellen, der bei normalem Gebrauch nicht weiter ins Gewicht fällt?
Es ging um die Messung/Feststellung der Geschwindigkeitsunterschiede in PHP bei den verschiedenen Schreibweisen. Die Messung des Traffic ist eine vollkommen andere Domaene.
Wieso so viele "Stringoperatinen" (evtl. der falsche Ausdruck; siehe Thema des Ausgangs-Posting)? Naja, aus genau dem gleichen Grund macht man Meinungsumfragen ja auch nicht mit nur einer Person.
Wenn ich mit derart wenig Aufwand (um nicht zu sagen keinen) - lediglich die Wahl des richtigen Anfuehrungszeichens - dazu fuehrt, dass das Script weniger Performance benoetigt (und sei es noch so "ungewichtig" - die Masse macht es), dann sehe ich keinerlei Grund, diesen "Aufwand" nicht zu betreiben.
echo $begrüßung;
Es ging um die Messung/Feststellung der Geschwindigkeitsunterschiede in PHP bei den verschiedenen Schreibweisen. Die Messung des Traffic ist eine vollkommen andere Domaene.
Das ist in etwa so wie die Frage eines Sportreporters an jemanden, der seinen Rekord um zwei Sekunden unterschritten hat: "Und was machen Sie nun? Immerhin haben sie ja jetzt mehr Freizeit."
Du gewinnst etwas, das ist so minimal, dass das Ergebnis nicht ins Gewicht fällt. Diese geringe eingesparte Zeit geht beim Transport durch das Netz wieder verloren. Für den Anwender ist es völlig unerheblich, ob er ein paar Millisekunden mehr wartet. Und wenn dein Server an der Lastgrenze ist, dann bringen diese Millisekunden auch keinen derartig großen Gewinn, dass am Ende noch genügend Leistungsreserve für die nächste Lastspitze übrigbleibt.
Wieso so viele "Stringoperatinen" (evtl. der falsche Ausdruck; siehe Thema des Ausgangs-Posting)? Naja, aus genau dem gleichen Grund macht man Meinungsumfragen ja auch nicht mit nur einer Person.
Und was gewinnst du aus der Aussage einer Meinugsumfrage, wenn du sie nicht in ein deutlich sichtbares Ergebnis umwandeln kannst? Meine Meinung ist, dass es jeder so schreiben kann, wie er will, solange ich nicht damit arbeiten muss. :-) Ich hab nur was gegen den praktisch kaum relevanten Laufzeitvergleich.
Wenn ich mit derart wenig Aufwand (um nicht zu sagen keinen) - lediglich die Wahl des richtigen Anfuehrungszeichens - dazu fuehrt, dass das Script weniger Performance benoetigt (und sei es noch so "ungewichtig" - die Masse macht es), dann sehe ich keinerlei Grund, diesen "Aufwand" nicht zu betreiben.
Mit ebenfalls wenig Aufwand kann ein geübtes Auge die wirklichen Flaschenhälse einer Anwendung beseitigen und erhält dabei einen deutlich besseres Ergebnis.
Wenn du was messen willst, dann miss richtig. Miss nicht die Laufzeit einer Schleife, sondern nimm dir praxisnahe Scripts mit allen zu testenden Methoden, und miss die Anzahl der Requests in einer gewählten Zeiteinheit.
echo "$verabschiedung $name";