Delphi-PRAXiS

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

Ralf Kaiser 9. Dez 2009 11:09

Re: [PHP] Zeichenketten " oder '
 
Zitat:

Zitat von Luckie
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. ;)

Also, wir habe kürzlich eine Infoseite mit Drupal aufgebaut. Das System ist wirklich nicht schlecht (ich hab schon so einige CMSe ausprobiert). Kann ich nur empfehlen. Vor allen, weil auch Leute die keinen Plan von Programmieren oder HTML haben ganz einfach die Inhalte pflegen können. Ausserdem gibt es dafür Addins wie Sand am Meer mit denen man fast alles machen kann!

Daniel 9. Dez 2009 11:10

Re: [PHP] Zeichenketten " oder '
 
Naja, warum auch nicht. Solange man die Möglichkeit hat, sich eher spielerisch in ein System einzuarbeiten, dann mag das von Vorteil (weil i.d.R. stressfrei) sein.

Luckie 9. Dez 2009 11:16

Re: [PHP] Zeichenketten " oder '
 
Jupp, mein Chef hat mir das mit Drupal mal gezeigt / vorgeführt. Ist schon irgendwie geil das Modul Konzept. Aber für meine Homepage kein Thema. Dass ich jetzt die Directory Listings mit PHP mache anstatt vom Apache erzeugen zu lassen, sollte das höchste aller Gefühle bleiben, was ich da an Aufwand treibe. ;)

Mithrandir 9. Dez 2009 12:05

Re: [PHP] Zeichenketten " oder '
 
HalbOT: Du solltest vielleicht mit ModRewrite arbeiten. Ich weiß nicht, ob Google sowas als doppelten Content ansieht:

http://www.michael-puff.de/Developer/Delphi/Programme/
http://www.michael-puff.de/index.php...lphi/Programme

Kann aber auch sein, dass ich dich noch beim Basteln erwischt habe. :stupid: Jedenfalls war ich ziemlich irritiert, als ich von der Sitemap auf das "alte" Layout zurückgekommen bin. ;)

Luckie 9. Dez 2009 12:11

Re: [PHP] Zeichenketten " oder '
 
Keine Ahnung wie Google das wertet. Und dass du von der Sitemap auf das "alte" Layout zurückgekommen bist, ist in Ordnung, zwar nicht unbedingt gewollt, aber geduldet. ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:20 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