- Ad -
php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 13-08-2005, 19:20
tomstig
 Registrierter Benutzer
Links : Onlinestatus : tomstig ist offline
Registriert seit: Jul 2003
Ort: wr n
Beiträge: 878
tomstig ist zur Zeit noch ein unbeschriebenes Blatt
tomstig eine Nachricht über ICQ schicken
Standard [BELEHRUNG] - Richtiges Trennen von Strings und Variablen

Kurzes Beispiel:
PHP-Code:
$name "Thomas";

// empfohlen
echo "Hallo, mein Name ist " $name;

// fehleranfällig
echo "Hallo, mein Name ist $name";

// empfohlen
echo $name;

// sehr fehleranfällig, vor allem in Kombination mit '
echo "$name"
Das gleiche gilt für Arrays und globals:
PHP-Code:
$mein_array = array("name" => "Thomas""wohnort" => "wrn");

//empfohlen
echo $mein_array["wohnort"];

//fehleranfällig
echo $mein_array[wohnort];

//das gleiche gilt auch für $_GET, $_POST, $_COOKIE

//empfohlen
echo $_GET["s"];

//fehleranfällig
echo $_GET[s]; 

Eine Ausnahme gibt es, wo es erlaubt ist, keine Anführungszeichen zu schreiben:
PHP-Code:
$mein_array = array("name" => "Thomas""wohnort" => "wrn");

// Auf wohnort wird "name" gespeichert
define("wohnort""name");

echo 
"Hallo " $mein_array[wohnort];    // Hallo Thomas
echo "Hallo " $mein_array["wohnort"];    // Hallo wrn 
Weitere Informationen hier


Um noch den Unterschied zwischen ' und " zu erläutern:
PHP-Code:
// Man will in seinen Text [b]\n[/b] schreiben
echo 'In meinen Text möchte ich \n schreiben';   // funktioniert
echo "In meinen Text möchte ich \\\n schreiben";   // funktioniert
echo "In meinen Text möchte ich \n schreiben";   //funktioniert nicht

// das gleiche gilt für Variablen
// zu Testzwecken geb ich der Variable $name einen Wert
$name 'Thomas';     // (bei einfacher Textzuweisung ist es egal, ob man ' oder " verwendet)

// man möchte jetzt einen Text schreiben, wo [b]$name[/b] vorkommt
echo 'Hallo $name';       // Hallo $name
echo "Hallo \$name";     // Hallo $name
echo "Hallo $name";     // Hallo Thomas (<- nicht empfehlenswert) 

Geändert von tomstig (15-04-2006 um 19:09 Uhr)
Mit Zitat antworten
  #2 (permalink)  
Alt 13-08-2005, 19:49
ghostgambler
 Master
Links : Onlinestatus : ghostgambler ist offline
Registriert seit: Jul 2004
Ort: DE - NRW
Beiträge: 4.620
ghostgambler ist zur Zeit noch ein unbeschriebenes Blatt
Standard Re: [BELEHRUNG] - Richtiges Trennen von Strings und Variablen

Zitat:
PHP-Code:
// richtig
echo "Hallo, mein Name ist " $name
falsch
PHP-Code:
// richtig
echo 'Hallo, mein Name ist ' $name
Zitat:
PHP-Code:
$mein_array = array("name" => "Thomas""wohnort" => "wrn");

//richtig
echo $mein_array["wohnort"]; 
falsch
PHP-Code:
// richtig
echo $mein_array['wohnort']; 

Zitat:
PHP-Code:
//richtig
echo $_GET["s"]; 
und wieder falsch
PHP-Code:
echo $_GET['s']; 

Wenn dann auch ganz richtig und nicht nur halb...

Abgesehen von einer Ausnahme, wenn man nämlich Whitespace-Zeichen einfügen will, also z.B: \n
dann MUSS man " nehmen, weil sie bei ' einfach ausgegeben werden:
PHP-Code:
echo "test\ntest"// ergibt
/*
test
test
*/
echo 'test\ntest'// ergibt
/*
test\ntest
*/ 
Mit Zitat antworten
  #3 (permalink)  
Alt 13-08-2005, 19:53
penizillin
 PHP Guru
Links : Onlinestatus : penizillin ist offline
Registriert seit: Feb 2004
Beiträge: 10.166
penizillin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

meine herren, die begriffe "richtig" und "falsch" sind zuweilen zu radikal.

statt "falsch" würde ich sagen - "fehleranfälliger" und für "richtig" - "empfehlenswerter" (und nur minimal performanter).

schreib lieber noch ein paar takte zu '$selten_richtig'.

Geändert von penizillin (13-08-2005 um 19:56 Uhr)
Mit Zitat antworten
  #4 (permalink)  
Alt 13-08-2005, 19:55
tomstig
 Registrierter Benutzer
Links : Onlinestatus : tomstig ist offline
Registriert seit: Jul 2003
Ort: wr n
Beiträge: 878
tomstig ist zur Zeit noch ein unbeschriebenes Blatt
tomstig eine Nachricht über ICQ schicken
Standard

Ob du ' oder " verwendest, ist egal, andererseits hätt ich gerne einen seriösen Gegenbeweis.

Ich nehme standardmässig ' also
PHP-Code:
$name 'Thomas';
echo 
'Hallo, mein Name ist ' $name;

//arrays:
$mein_array = array('Name' => 'Thomas''Wohnort' => 'wrn');
echo 
$mein_array['name']; 
insofern juckt mich deine Aussage wenig.

Ich wollte nur die Leute, die
PHP-Code:
echo "$name"
schreiben, nicht mit dem Apostrophe überfordern.
Mit Zitat antworten
  #5 (permalink)  
Alt 13-08-2005, 19:55
tomstig
 Registrierter Benutzer
Links : Onlinestatus : tomstig ist offline
Registriert seit: Jul 2003
Ort: wr n
Beiträge: 878
tomstig ist zur Zeit noch ein unbeschriebenes Blatt
tomstig eine Nachricht über ICQ schicken
Standard

Zitat:
Original geschrieben von penizillin
meine herren, die begriffe "richtig" und "falsch" sind zuweilen zu radikal.

statt "falsch" würde ich sagen - "fehleranfälliger" und für "richtig" - "empfehlenswerter" (und nur minimal performanter).
ayay, wir geändert...
Mit Zitat antworten
  #6 (permalink)  
Alt 13-08-2005, 21:28
Hopka
 PHP Expert
Links : Onlinestatus : Hopka ist offline
Registriert seit: May 2003
Ort: Köln
Beiträge: 2.172
Hopka ist zur Zeit noch ein unbeschriebenes Blatt
Hopka eine Nachricht über ICQ schicken
Standard

Zitat:
Original geschrieben von penizillin
(und nur minimal performanter).
falsch.
__________________
hopka.net!
Mit Zitat antworten
  #7 (permalink)  
Alt 13-08-2005, 21:45
ghostgambler
 Master
Links : Onlinestatus : ghostgambler ist offline
Registriert seit: Jul 2004
Ort: DE - NRW
Beiträge: 4.620
ghostgambler ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von Hopka
falsch.
richtig
weil PHP in " nach Variabeln sucht und in ' nicht
Mit Zitat antworten
  #8 (permalink)  
Alt 13-08-2005, 22:10
penizillin
 PHP Guru
Links : Onlinestatus : penizillin ist offline
Registriert seit: Feb 2004
Beiträge: 10.166
penizillin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von Hopka
falsch.
warum?

http://www.blueshoes.org/phpBench.php
Mit Zitat antworten
  #9 (permalink)  
Alt 14-08-2005, 01:21
asp2php
 Banned
Links : Onlinestatus : asp2php ist offline
Registriert seit: Feb 2004
Beiträge: 11.745
asp2php ist zur Zeit noch ein unbeschriebenes Blatt
Standard

sag mal habt Ihr am WE alle nichts zu tun

egal ob " oder ' der Unterschied ist kaum merkbar. Wenn Ihr ' verwendet, aber einen Sch**ßalgorithmus im Programm habt dann nützt es Euch herzlich wenig. Also verlege mal das Augenmerk auf wichtigeren Dingen als auf " oder ' bei String
Mit Zitat antworten
  #10 (permalink)  
Alt 14-08-2005, 15:15
Hopka
 PHP Expert
Links : Onlinestatus : Hopka ist offline
Registriert seit: May 2003
Ort: Köln
Beiträge: 2.172
Hopka ist zur Zeit noch ein unbeschriebenes Blatt
Hopka eine Nachricht über ICQ schicken
Standard

Zitat:
Original geschrieben von penizillin
warum?

http://www.blueshoes.org/phpBench.php

http://hopka.net/string.php
http://hopka.net/string.php5

Wenn keine Variablen drin vorkommen ist mal die Methode mit ' schneller und mal die mit ". Meistens sogar die mit ".

Zitat:
Original geschrieben von ghostgambler
weil PHP in " nach Variabeln sucht und in ' nicht
Nein, PHP sucht nach gar nichts. Erst läuft ein so genannter Tokenizer drüber, der nach Tokens sucht (das sind Schlüsselwörter wie if oder else, aber auch alles andere, was zur Syntax gehört wie $, " und '). Wenn jetzt innerhalb der " kein Token für eine neue Variable ($) vorkommt, dann läuft er dort genau so schnell drüber wie über den String mit '. Das passiert außerdem noch bevor der Code ausgeführt wird und die Funktionen zur Zeitmessung aktiv werden.


Und zu asp2php möchte ich noch ergänzen, dass diese so genannten Microbenchmarks (wie in dem Link von penizillin zu finden) nicht sehr aussagekräftig sind. Dort wird ja nur die Ausführungszeit von einzelnen Codezeilen untersucht, und andere wichtige Dinge werden völlig außen vor gelassen wie z.B. der Speicherverbrauch oder die "Compile-Zeit" (bei PHP wird ja jedes Script beim Aufruf normalerweise neu compiliert und ausgeführt). Wenn man wirklich herausfinden will, wo man seine Scripte optimieren kann, dann hilft einem ein Tool wie xdebug sehr viel weiter, weil das auflisten kann, welche Funktionen wie oft aufgerufen werden, und wie lange sie durchlaufen.
__________________
hopka.net!
Mit Zitat antworten
  #11 (permalink)  
Alt 14-08-2005, 15:28
penizillin
 PHP Guru
Links : Onlinestatus : penizillin ist offline
Registriert seit: Feb 2004
Beiträge: 10.166
penizillin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Wenn keine Variablen drin vorkommen [...]
ich meine, es geht um das gegenteil. und deinen eigenen benchmarks zufolge macht der z.t. fast das doppelte an zeit.
Zitat:
String in ' mit 2 über . $var . eingefügten Variablen: 0.022278 sec
String in " mit 2 enthaltenen Variablen: 0.045635 sec
Zitat:
Und zu asp2php möchte ich noch ergänzen [...]
völlig einverstanden.
Mit Zitat antworten
  #12 (permalink)  
Alt 14-08-2005, 16:15
derHund
 PHP Master
Links : Onlinestatus : derHund ist offline
Registriert seit: Aug 2003
Ort: Hundehütte
Beiträge: 5.293
derHund ist zur Zeit noch ein unbeschriebenes Blatt
Standard

dann will ich auch mal, ihr wolltet es ja nicht anders.

http://benchmark.nophia.de/benchmark...tml#auswertung
http://benchmark.nophia.de/benchmark...tml#auswertung
__________________
Die Zeit hat ihre Kinder längst gefressen: hund (back in black) | ??? | ??? | ...
Mit Zitat antworten
  #13 (permalink)  
Alt 14-08-2005, 21:37
tomstig
 Registrierter Benutzer
Links : Onlinestatus : tomstig ist offline
Registriert seit: Jul 2003
Ort: wr n
Beiträge: 878
tomstig ist zur Zeit noch ein unbeschriebenes Blatt
tomstig eine Nachricht über ICQ schicken
Standard

Abgesehen von der Performance gehört das Trennen von Strings und Variablen zum sauberen Programmieren, deshalb sollte man sich das von Anfang an angewöhnen, weil es unter anderem erheblich das Lesen und Analysieren von Quellcodes erleichtert.

Und wenn ich dann lese, "ich kann erst seit 2 wochen/3 tage/5 stunden php" und dann les ich
PHP-Code:
echo "$name"
dann weiß ich automatisch, dass beim lernen etwas falsch gelaufen ist.
Mit Zitat antworten
  #14 (permalink)  
Alt 03-11-2005, 09:48
firstlord18
 Member
Links : Onlinestatus : firstlord18 ist offline
Registriert seit: Nov 2004
Ort: Germany
Beiträge: 310
firstlord18 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ok, hab nun den ganzen thread gelesen, aber irgendwie verstehe ich trotzdfem nicht richtig, warum '' besser als "" sind. Ich dachte immer (und so stands glaub ich auch in meinen büchern), dass das völlig egal ist (zumindest bei Standart strings etc.
Klar ist mir, dass sowas wie
'$var'
und "$var"
und sowas wie
'\n'
und
"\n"
ein Unterschied macht, aber bei ganz normalen Stringzuweißungen und so versteh ich's jetzt net ganz! Soll ich nun immer bei Strings und bei Indices eines Arrays statt "" '' nutzen oder wie?
Mit Zitat antworten
  #15 (permalink)  
Alt 03-11-2005, 09:52
mrhappiness
 PHP Guru
Links : Onlinestatus : mrhappiness ist offline
Registriert seit: Oct 2002
Beiträge: 14.890
mrhappiness ist zur Zeit noch ein unbeschriebenes Blatt
mrhappiness eine Nachricht über AIM schicken mrhappiness eine Nachricht über Yahoo! schicken
Standard

Zitat:
Original geschrieben von firstlord18
Soll ich nun immer bei Strings und bei Indices eines Arrays statt "" '' nutzen oder wie?
Du kennst den Spruch mit dem Dachdecker?

P.S. Es heißt "Zuweisung"
__________________
Ich denke, also bin ich. - Einige sind trotzdem...
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

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

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

Computer oder Gehirn? Macht uns das Internet immer dümmer? 
Computer oder Gehirn? Macht uns das Internet immer dümmer? Die ständig zur Verfügung stehenden Informationen über das Internet haben den Vorteil, dass man sich im Vergleich zu früheren Jahren deutlich weniger merken muss.

18.01.2018 | PhilippEgger

PHP oder Spanisch lernen? Oder doch beides?
PHP oder Spanisch lernen? Oder doch beides?Fremdsprachen sind für Entwickler enorm wichtig. Ohne Englisch geht fast nichts.

28.11.2017 | Berni


 

Aktuelle PHP Scripte

Sendeplan Script inkl. Wunsch- und Grußbox + Kick-System ansehen Sendeplan Script inkl. Wunsch- und Grußbox + Kick-System

Das kostenlose Sendeplan PHP Script inkl. Wunsch- und Grußbox + Kick-System für dein Webradio.

16.02.2018 albertikus | Kategorie: PHP/ Web Radio
4images - Image Gallery Management System ansehen 4images - Image Gallery Management System

4images kann komplett browserbasiert über einen passwortgeschützten Administrationsbereich verwaltet werden. Dabei kann 4images weit mehr als eine Bilddatenbank leisten. 4images ist nicht nur auf die gängigen Bildformate beschränkt, auch PDF, Videos, etc.

05.02.2018 4images@ | Kategorie: PHP/ Bilder
ADSMAN V3 - Werbe-Manager ansehen ADSMAN V3 - Werbe-Manager

ADSMAN V3 - mehr als nur ein Bannermanager! Mit ADSMAN PRO haben Sie die Marketinglösung für eine effektive und effiziente Werbeschaltung mit messbaren Ergebnissen. Unterstützt werden Bannerformate in beliebigem Format, Textanzeigen und jQuery Page-Pee

23.01.2018 virtualsystem | Kategorie: PHP/ Bannerverwaltung
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 10:08 Uhr.