![]() |
[PHP] Zeichenketten " oder '
Ich frage mich gerade, was man bei PHP für Zeichenketten jetzt nimmt. " oder '? Geht ja beides. Da ich mich mit der Frage noch nie richtig beschäftigt habe, geht es bei mir ziemlich durcheinander. Ich würde es jetzt aber gerne einheitlich und möglichst richtig machen.
|
Re: [PHP] Zeichenketten " oder '
In Strings die mit doppelten Anführungszeichen definiert wurden werden Escapcodes ausgewertet (z.B. \t für TAB). Ausserdem können dort innerhalb des Strings auch Variableninhalte ersetzt werden (Variablensubstitution)
In Strings die mit einfachen Anführungszeichen definiert wurden passiert das nicht. |
Re: [PHP] Zeichenketten " oder '
Innerhalb von doppelten Anführungszeichen werden Variablen ausgewertet, einfache Anführungszeichen sind echte Literale:
Code:
Früher hieß es, dass die Verarbeitung von Strings mit einfachen Anführungszeichen schneller sei, das ist bei aktuellen PHP-Versionen jedoch nicht mehr zutreffend.
$var = 4711;
echo "meine Variable hat den Wert $var"; // ergibt: meine Variable hat den Wert 4711 echo 'meine Variable hat den Wert $var'; // ergibt: meine Variable hat den Wert $var |
Re: [PHP] Zeichenketten " oder '
hi,
gerade wegen den oben genannten Gründen nutze ich eigentlich nur noch die doppelten Anführungszeichen. imho mach das den Code übersichtlicher. gruß angos |
Re: [PHP] Zeichenketten " oder '
Also wenn man " nimmt, dann brauch man nicht mehr so was machen:
Code:
Und was nimmt man bei Funktionen, die Zeichenketten als Parameter erwarten?
echo "Text: ".$var." noch mehr Text.";
|
Re: [PHP] Zeichenketten " oder '
Bei echo () würde ich auf die Punkte eh verzichten und lieber Kommas Kommata nehmen.
Der Punkt sorgt dafür, dass der String zuerst im Speicher komplett zusammengebastelt wird und dann als Ganzes ausgegeben wird. Wenn ein echo() mehrere Parameter bekommt, die mittels Komma getrennt sind, dann werden die einfach nacheinander ausgegeben und gut is'. In der Regel ist dies performanter.
Code:
echo 'Text: ', $var, ' noch mehr Text.';
|
Re: [PHP] Zeichenketten " oder '
Zitat:
Code:
:stupid:
"Hier steht ein String"
|Hier auch| {Man glaubt es kaum, hier auch} Wobei es hier meines Wissens nach keinen Unterschied gibt, außer dass ich dann jeweils die nicht verwendeten Zeichen ohne Probleme im String verwenden darf... Macht dann halt so manchen Quellcode wirklich gut lesbar, wenn dann mal ein Entwickler von dieser Freiheit rege Gebrauch macht und eins ums andere Mal die Notation wechselt. Manchmal glaubt man echt, IBM hat alles getan, dass progra... Verzeihung: rumfrickeln... in Notes keinen Spaß macht :mrgreen: Hatte eigentlich nichts mit der Frage zu tun, aber für Notes-Bashing ist immer der richtige Moment :mrgreen: |
Re: [PHP] Zeichenketten " oder '
Ich korrigiere gerade mein Skript bezüglich eurer Vorschläge. Jetzt bin ich auf diese Stelle gestoßen:
Code:
Nehme ich da " muss ich die inneren " ja escapen und das ist doch eigentlich nicht so schön oder?
echo '<table class="noborder">';
Und dann habe ich natürlich noch solche Konstrukte:
Code:
$link = $path.'/'.$dir;
echo '<tr><td class="noborder">[url="index.php?path='.$link.'"]'.$dir.'[/url]</td><td class="noborder" align="center">[DIR]</td><td class="noborder" align="center" width=150px>'.date("Y-m-d H:i",filemtime('.'.$link)).'</td><td class="noborder"</td></tr>'; |
Re: [PHP] Zeichenketten " oder '
Und aus genau diesem Grund ging man dazu über, auch bei PHP den Code und das Design zu trennen. Stichwort: Template-Engine. In dieser Richtung läge die einzig saubere Lösung. Ansonsten kannst Du den Code drehen und wenden, wie Du magst - hübscher wird er nicht.
Ich würde dann allenfalls versuchen, wie in Deinem ersten Beispiel den HTML-Code 1:1 zu belassen und diesen in PHP mit einfachen Anführungszeichen zu notieren. |
Re: [PHP] Zeichenketten " oder '
Ok, dann lasse ich das so, wie es ist. Ein Template-Engine halte ich für etwas übertrieben in meinem Fall. Mein Chef meinte schon, ich könne ja meine Homepage mit Drupal machen, weil da eventuell auch was auf mich zu kommt beruflich. ;)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:25 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz