Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   [PHP] Zeichenketten " oder ' (https://www.delphipraxis.net/144504-%5Bphp%5D-zeichenketten-oder.html)

Luckie 9. Dez 2009 09:56


[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.

Ralf Kaiser 9. Dez 2009 10:02

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.

Daniel 9. Dez 2009 10:02

Re: [PHP] Zeichenketten " oder '
 
Innerhalb von doppelten Anführungszeichen werden Variablen ausgewertet, einfache Anführungszeichen sind echte Literale:

Code:
$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
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.

angos 9. Dez 2009 10:07

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

Luckie 9. Dez 2009 10:09

Re: [PHP] Zeichenketten " oder '
 
Also wenn man " nimmt, dann brauch man nicht mehr so was machen:
Code:
echo "Text: ".$var." noch mehr Text.";
Und was nimmt man bei Funktionen, die Zeichenketten als Parameter erwarten?

Daniel 9. Dez 2009 10:25

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.';

leddl 9. Dez 2009 10:28

Re: [PHP] Zeichenketten " oder '
 
Zitat:

Zitat von Luckie
Ich frage mich gerade, was man bei PHP für Zeichenketten jetzt nimmt. " oder '?

Hehe, vor der Wahl stehe ich auch immer wieder, wenn ich hier mal wieder zur Notes-Programmierung gezwungen werde. Nur, dass ich da drei Alternativen zur Auswahl habe :mrgreen:
Code:
"Hier steht ein String"
|Hier auch|
{Man glaubt es kaum, hier auch}
:stupid:

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:

Luckie 9. Dez 2009 10:37

Re: [PHP] Zeichenketten " oder '
 
Ich korrigiere gerade mein Skript bezüglich eurer Vorschläge. Jetzt bin ich auf diese Stelle gestoßen:
Code:
echo '<table class="noborder">';
Nehme ich da " muss ich die inneren " ja escapen und das ist doch eigentlich nicht so schön oder?

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>';

Daniel 9. Dez 2009 10:57

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.

Luckie 9. Dez 2009 11:06

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 21:58 Uhr.
Seite 1 von 2  1 2      

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