Portal > Foren > PHP > PHP-Programmierung > Single- oder Double-Quotes?
Antwort
 
Themen-Optionen Thema durchsuchen
Alt 14.03.2006, 14:56 Nach oben    #1
Benutzer
 
Registriert seit: 27.02.2006
Beiträge: 38
Standard

Dieser Thread wurde aus diesem Thema hier herausgesplittet.
Grüße, Ben.




@Chriscom

Nein, auch Double-Quotes " haben da nix zu suchen.
Hier mal ein paar Beispiele für die Korrekte Verwendung:

PHP-Code:
$var 'test'//richtig
$var "test"// falsch, da nur string

$var 2//richtig
$var "2"// falsch, da nur int
$var '2'// falsch da nur int

$var "$test"// überflüssig
$var '$test'// $test ist string, wird nicht interpretiert

$var "Mein Name ist: $name"// richtig 

Geändert von Ben (14.03.2006 um 21:48 Uhr)
freezer ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 14.03.2006, 16:30 Nach oben    #2
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.516
Standard

Zitat:
Zitat von freezer
PHP-Code:
$var 'test'//richtig
$var "test"// falsch, da nur string 
Wie bitte?
Ben ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 14.03.2006, 17:26 Nach oben    #3
Martin Breuer
 
Benutzerbild von WarrenFaith
 
Registriert seit: 17.08.2005
Ort: Berlin
Beiträge: 1.653
Standard

' werden schneller geparst als " weshalb " nur verwendet werden sollen, wenn im string eine variable vorhanden ist. irgendwann gabs mal performancetests was effizienter ist.
PHP-Code:
echo "Dies ist ein Test ".$foobar
// oder
echo "Dies ist ein Test $foobar"
__________________
I did it my way - Senseless-Blog
Weihnachtsgeschenk? Schülern helfen - Bodypainting Kalender für 2009
WarrenFaith ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 14.03.2006, 21:17 Nach oben    #4
Erfahrener Benutzer
 
Registriert seit: 19.08.2005
Beiträge: 115
Standard

wenn das so ist sollte man " einfach überhaupt nicht verwenden, da das direkte verketten mit '-strings und variablen wohl noch das schnellste ist.
PHP-Code:
$string 'bla'.$var
und was
PHP-Code:
$var 2//richtig
$var "2"// falsch, da nur int
$var '2'// falsch da nur int 
betrifft -> vielleicht ist 2 auch als string gemeint, da kann man es durchaus als string speichern. Auch wenn php nicht typensicher ist, so kann man doch trotzdem verwirrungen vermeiden, indem man einen string auch als solchen defininiert.

Was
PHP-Code:
$var "Mein Name ist: $name"// richtig 
betrifft, so halte ich das für einen verdammt schlechten stil - warum nicht ganz normal verketten - schließlich meckerst du bei " für einen string statt ', dann solltest du auch so konsequent sein und
PHP-Code:
$var 'Mein Name ist: '.$name// richtig 
schreiben.

[EDIT]
Also jetzt bin ich sprachlos. Ich habe mal einen benchmark durchgeführt:
PHP-Code:
<?php
$durchgaenge 
1000000;

$start1 microtime(true);
for(
$i=0;$i<$durchgaenge;$i++) {
        
$string 'bla';
}
$zeit1 microtime(true)-$start1;

$start2 microtime(true);
for(
$i=0;$i<$durchgaenge;$i++) {
        
$string "bla";
}
$zeit2 microtime(true)-$start2;


$var "a";
$start3 microtime(true);
for(
$i=0;$i<$durchgaenge;$i++) {
        
$string "bla $var";
}
$zeit3 microtime(true)-$start3;

$start4 microtime(true);
for(
$i=0;$i<$durchgaenge;$i++) {
        
$string "bla ".$var;
}
$zeit4 microtime(true)-$start4;

$start5 microtime(true);
for(
$i=0;$i<$durchgaenge;$i++) {
        
$string 'bla '.$var;
}
$zeit5 microtime(true)-$start5;

echo 
$zeit1."\n".$zeit2."\n".$zeit3."\n".$zeit4."\n".$zeit5;
Ausgabe:
0.665493965149 <-- Das ist 'bla'
0.588599920273 <-- Das ist "bla"
0.952318906784 <-- Das ist "bla $var"
0.731019973755 <-- Das ist "bla ".$var
0.73299407959 <-- Das ist 'bla '.$var

Anscheinend ist also - entgegen der erwartungen - ein string indoppelten anführungszeichen schneller geparst als in einfachen. Ausserdem ist (verständlicherweise) manuelle verkettung deutlich schneller als einfach alle variablen in den string zu schreiben.

Aber das mit den Anführungszeichen will ich jetzt genau wissen - woran liegt das? Zufall wird es nicht sein - ich habe das ganze 10mal durchgeführt und die reihenfolge war jedesmal gleich.

(Systeminfos: PHP Version 5.0.4 AMD Athlon 3400+ WindowsXP)


Btw.: Ein split wäre vielleicht mal angebracht
__________________
Programming today is a race between software engineers striving to build bigger and better
idiot-proof programs, and the universe trying to build bigger and better idiots. So far, the
universe is winning.

Geändert von Buhmann (14.03.2006 um 21:33 Uhr)
Buhmann ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 14.03.2006, 21:57 Nach oben    #5
Jay
Gast
 
Beiträge: n/a
Standard

Zitat:
usserdem ist (verständlicherweise) manuelle verkettung deutlich schneller als einfach alle variablen in den string zu schreiben.
Ja genau.
$var1 = "Mein Name ist $name";
$var2 = "Mein Name ist'.$name;

Bei der zweiten Zuweisung muss ich um ein Zeichen mehr schreiben, deshalb ist es schneller oder was?! . '' oder "" das hängt nur von der Vorliebe des Programmierers ab.

Es gibt ja auch Leute die schreiben sowas:

<?php echo $vorname; ?>
-
<?php echo $nachname; ?>

Auf den ersten Blick glaubt man das ist schneller, weil weniger durch echo ausgegeben wurde. In Wirklichkeit ist das aber wesentlich langsamer weil der Parser viel länger benötigt.

MfG Fat Tony
 
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 14.03.2006, 22:10 Nach oben    #6
Erfahrener Benutzer
 
Registriert seit: 19.08.2005
Beiträge: 115
Standard

Zitat:
Zitat von Fat Tony
Zitat:
usserdem ist (verständlicherweise) manuelle verkettung deutlich schneller als einfach alle variablen in den string zu schreiben.
Ja genau.
$var1 = "Mein Name ist $name";
$var2 = "Mein Name ist'.$name;

Bei der zweiten Zuweisung muss ich um ein Zeichen mehr schreiben, deshalb ist es schneller oder was?! . '' oder "" das hängt nur von der Vorliebe des Programmierers ab.

Es gibt ja auch Leute die schreiben sowas:

<?php echo $vorname; ?>
-
<?php echo $nachname; ?>

Auf den ersten Blick glaubt man das ist schneller, weil weniger durch echo ausgegeben wurde. In Wirklichkeit ist das aber wesentlich langsamer weil der Parser viel länger benötigt.

MfG Fat Tony
äähhh was?

sorry aber - ich kann dir überhaupt nicht folgen.
1. hast du dich bei deinem zweiten code verschrieben - meinst du nun single oder double quotes?
2. Die Benchmark ergebnisse haben doch gerade ergeben, dass die manuelle verkettung ( "bla".$var) schneller ist als etwas wie "bla $var". Worauf beziehst du dich jetzt?
3. "Bei der zweiten Zuweisung muss ich um ein Zeichen mehr schreiben, deshalb ist es schneller oder was?!" - jetzt komme ich mir schon fast verarscht vor - ich habe nie etwas derartiges behauptet und mich nichteinmal annähernd auf die schreibgeschwindigkeit berufen. Ich glaube nicht, dass du meinen post wirklich verstanden hast, oder ich missverstehe dich in einem punkt extrem.
__________________
Programming today is a race between software engineers striving to build bigger and better
idiot-proof programs, and the universe trying to build bigger and better idiots. So far, the
universe is winning.
Buhmann ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 14.03.2006, 22:32 Nach oben    #7
.
 
Registriert seit: 21.09.2005
Ort: CH-JP
Beiträge: 47
Standard

Single Quotes oder Double Quotes (Teil 1)

Die alte Geschichte. Ich persönlich verwende zum Abtrennen von String meistens einfache Anführungszeichen, einerseits, weil es übersichtlicher ist, andererseits spart man sich hier und da das Escapen - was andersherum allerdings genauso gilt.

Single Quotes oder Double Quotes (Teil 2)

Die alte Geschichte. Ich persönlich verwende zum Abtrennen von String meistens einfache Anführungszeichen, einerseits, weil es übersichtlicher ist, andererseits spart man sich hier und da das Escapen - was andersherum allerdings genauso gilt.
_root ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 14.03.2006, 22:36 Nach oben    #8
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.516
Standard

Doppelt gemoppelt hält besser. *g*
Wie passend. ^^

Dieser Beitrag spiegelt nicht meine Gewohnheiten bei der Verwendung von Single- und Double-Quotes wieder. Eher im Gegenteil.
Ben ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 14.03.2006, 22:55 Nach oben    #9
Martin Breuer
 
Benutzerbild von WarrenFaith
 
Registriert seit: 17.08.2005
Ort: Berlin
Beiträge: 1.653
Standard

Genau den Benchmark meinte ich, als ich vorhin davon sprach. Interessant ist nur, dass ich bei dem Benchmark von Buhmann ein kleines Problem mit php4 hab. Jede 2. Zeit ist negativ bei mir Bin zu schnell für PHP
__________________
I did it my way - Senseless-Blog
Weihnachtsgeschenk? Schülern helfen - Bodypainting Kalender für 2009
WarrenFaith ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 15.03.2006, 04:00 Nach oben    #10
Benutzer
 
Registriert seit: 27.02.2006
Beiträge: 38
Standard

Ui, hätte garnicht gedacht, dass das solch ein Aufsehen erregt:
Ich habe das nur schnell gebastelt um mal zu zeigen was möglich ist. Richtig/ Falsch ist vielleicht nicht korrekt gewählt. Ich würde auf eher mit . Verketten. Wenn man das aber so wie ich verwendet geht man eher auf Nummer sicher...
Naja, bin jetzt auch zu alkoholisiert um genauer drauf einzugehen
freezer ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 15.03.2006, 07:26 Nach oben    #11
Erfahrener Benutzer
 
Registriert seit: 19.08.2005
Beiträge: 115
Standard

Zitat:
Zitat von WarrenFaith
Genau den Benchmark meinte ich, als ich vorhin davon sprach. Interessant ist nur, dass ich bei dem Benchmark von Buhmann ein kleines Problem mit php4 hab. Jede 2. Zeit ist negativ bei mir Bin zu schnell für PHP
Der parameter für microtime wurde erst in php5 eingeführt - wenn du die funktion nicht umgebaut hast, kann das daran liegen
__________________
Programming today is a race between software engineers striving to build bigger and better
idiot-proof programs, and the universe trying to build bigger and better idiots. So far, the
universe is winning.
Buhmann ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 15.03.2006, 07:34 Nach oben    #12
Corvin Gröning
 
Benutzerbild von Corvin
 
Registriert seit: 19.03.2005
Ort: S-H | Flensburg
Beiträge: 459
Standard

Boah.. ich glaub's nicht. Da verwende ich grundsätzlich nur Single-Quotes, in dem Glauben, dass diese schneller sind als Double-Quotes, weil man das überall so liest und dann ist ist das Gegenteil der Fall. Sowas aber auch..
__________________
Corvin ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 15.03.2006, 09:43 Nach oben    #13
me pro ok?
 
Benutzerbild von Lars
 
Registriert seit: 07.09.2005
Ort: Pulheim bei Köln
Beiträge: 964
Standard

Zitat:
und dann ist ist das Gegenteil der Fall
Nö, find ich nicht. Denk mal über die Schwankungen beim Verkettungsbenchmark nach
Lars ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 15.03.2006, 09:43 Nach oben    #14
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.516
Standard

Ich zitiere mal aus einem anderen Forum
Zitat:
Ich benutze, was mir gerade in den Sinn kommt, denn Augaben aus dem PHP-Skript kommen bei mir eigentlich nur zum Debuggen vor oder, wenn es um irgendweine Kleinigkeit geht, bei der Templates übertrieben sind.
In zweiterem Fall ist dann aber auch die Performance nicht so wichtig.

Also, keep cool.
Ben ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 15.03.2006, 12:50 Nach oben    #15
Dejan Spasic
 
Benutzerbild von dejan_spasic
 
Registriert seit: 05.01.2006
Ort: Düsseldorf
Beiträge: 169
Standard

Zitat:
Zitat von Buhmann
Ausgabe:
0.665493965149 <-- Das ist 'bla'
0.588599920273 <-- Das ist "bla"
0.952318906784 <-- Das ist "bla $var"
0.731019973755 <-- Das ist "bla ".$var
0.73299407959 <-- Das ist 'bla '.$var
Ich habe mal deinen Skript ebenfalls auf meinem Rechner ausgeführt und fogende Daten erhalten:

Code:
28.940184831619 -> 'bla'
29.699169874191 -> "bla"
29.923330783844 -> "bla $var"
30.147722959518 -> "bla ".$var
29.784759998322 -> 'bla '.$var
Code:
28.590777873993 -> 'bla'
28.607438087463 -> "bla"
29.480679035187 -> "bla $var"
28.698648929596 -> "bla ".$var
28.695414066315 -> 'bla '.$var
Code:
29.151258945465 -> 'bla'
29.1935069561 -> "bla"
29.793011903763 -> "bla $var"
29.425312995911 -> "bla ".$var
29.204457044601 -> 'bla '.$var
Getestet mit der php5.1.1 Version. Wer sich jetzt für was entscheidet, bleibt ihm überlassen.
__________________
Da wir alle in einem Boot sitzen, ist es gut, dass wir nicht alle auf einer Seite stehen... (mir unbekannt)
dejan_spasic ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 15.03.2006, 13:34 Nach oben    #16
Benutzer
 
Registriert seit: 27.02.2006
Beiträge: 38
Standard

Also der Geschwindigkeitsunterschied ist glaube ich marginal. Ich denke man sollte eher darauf achten sauberen Code zu programmieren und dazu gehören auch single/double qoutes. Wenn keine Variablen im String sind, sind double quotes einfach überflüssig und single quotes sind teilweise auch überflüssig. Das wollte ich eigentlich ursprünglich aussagen
freezer ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 15.03.2006, 16:19 Nach oben    #17
Corvin Gröning
 
Benutzerbild von Corvin
 
Registriert seit: 19.03.2005
Ort: S-H | Flensburg
Beiträge: 459
Standard

Zitat:
Zitat von freezer
Also der Geschwindigkeitsunterschied ist glaube ich marginal.
Sicher ist er das. Da es aber von der Übersichtlichkeit her imo keinen Unterschied macht, ob man Single oder Double Quotes benutzt macht es natürlich Sinn, Double Quotes zu verwenden, da sie anscheinend grundsätzlich performanter sind, auch wenn der Unterschied so minimal ist.

Da ich aber keine Lust habe, mich jetzt wieder an Double Quotes zu gewöhnen, bleibe ich erstmal bei Single Quotes.
__________________
Corvin ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 17.03.2006, 15:33 Nach oben    #18
Verplanter Benutzer
 
Registriert seit: 14.12.2004
Beiträge: 239
Standard

Zitat:
Da ich aber keine Lust habe, mich jetzt wieder an Double Quotes zu gewöhnen, bleibe ich erstmal bei Single Quotes.
Das dachte ich mir auch gerade nach dem durchlesen ...
__________________
Das Leben ist zwar bloß ein Adventure-Game, aber die Grafik ist verdammt gut.
Ich such immer noch den Cheat für unlimited money!
DasMööp ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
PingBacks sind an
RefBacks sind aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Pfadfinder Xean Allgemeine Java-Programmierung 8 04.06.2006 15:10
[Java] Parser Generierung mit JavaCC - Eine Einführung pago Tutorials 0 14.04.2006 11:54
der Wert von Datentyp double punachino Allgemeine Java-Programmierung 15 10.11.2005 10:43
Gehaltsrechner Chickse Desktop-Applikationen und Grafik 1 19.06.2005 11:42
Errechnung der Zahl Pi in Java BoneCracker Allgemeine Java-Programmierung 6 15.02.2005 18:31


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:28 Uhr.


Powered by vBulletin® Version 3.7.4 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45