Seite 1 von 1

Variablen innerhalb Echo-Anweisung

Verfasst: 08.03.2006, 21:09
von kaisen
Ich weiß ist eine schreckliche blöde Frage. Aber ich mach das irgendwie mal so mal so und daher wollt ich mal fragen wie es denn richtig ist.

Also Situation:
Ich habe eine ehco anweisung in der eine Variable vorkommt.

Beispiele:

PHP-Code:
echo "<img src=\"$bildurl\">";

PHP-Code:
echo "<img src=\"" .$bildurl. "\">";


Also welche der beiden Lösungen ist nun richtig? Funktionieren tun beide... Aber meine mal gehört zu haben die zwiete sei die elegantere von beiden...

Danke

Grüße
Kai

Verfasst:
von
SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


Variablen innerhalb Echo-Anweisung

Verfasst: 08.03.2006, 21:15
von net(t)worker
jo... beide richtig...

die version mit ".$var." ist die übersichtlichere und fehler sind unwahrscheinlicher...

wenn man z.B. mehrere variabeln ohne leerzeichen dazwischen ausgeben möchte, könnte

echo "Variabeln: $var1$var2$var3";

zu Problemen führen, oder wenn direkt hinter der var ein text ausgegeben werden soll, hier bei wird ggf der Varname verändert:

echo "Variabeln $var1TEXTTEXT"

also besser immer:

echo "Variabeln: ".$var1.$var2.$var3;
echo "Variabeln ".$var1."TEXTTEXT";

Variablen innerhalb Echo-Anweisung

Verfasst: 08.03.2006, 21:18
von kaisen
ok, also die version, die die echo anweisung unterbricht und dann die variablen zwischen zwei punkte setzt.

ok ist notiert. danke...
ist wahrscheinlich auch von der server-seite her besser zu verarbeiten

Variablen innerhalb Echo-Anweisung

Verfasst: 08.03.2006, 21:25
von net(t)worker
dem server ist es egal.....

die echoanweisung wird ja nicht unterbrochen... nur der auszugebende String wird zusammengesetzt, das ist alles... der . fügt ja nur 2 strings zu einem zusammen, kannst ja auch

echo "hallo"." "."du da...";

schreiben....

aber wo wir gerade dabei sind...

echo 'Hallo $var1';

echo 'Hallo '.$var1;

macht einen großen Unterschied.... wenn du vars immer durch .$var. einfügst vermeidest du Fehler z.B. auch in obigen Fall....

Variablen innerhalb Echo-Anweisung

Verfasst: 08.03.2006, 21:30
von kaisen
ok danke.

und wo ich gerade bei essentiellen fragen bin, fällt mir gerade noch eine ein, wo ich nicht so rehct weiß.

Wenn man variablen als parameter übergibt und dann im aktuellen dokument verwenden will...

ist es überhaupt noch nötig vorher immer schön

$var = $_GET['var'];

die Variable einzuholen?

Danke
Kai

Re: Variablen innerhalb Echo-Anweisung

Verfasst: 08.03.2006, 21:30
von Graccem
kaisen hat geschrieben:
PHP-Code:
echo "<img src="$bildurl">";

PHP-Code:
echo "<img src="" .$bildurl. "">";
Die zweite macht überhaupt keinen Sinn. Das doppelte Anführungszeichen weißt den Parser an, den String auf Variablen zu parsen. Da aber keine Variable drin ist, muss dieser String auch nicht geparst werden. Also, wenn du schon die Variablen aus dem String herausnehmen möchtest, dann den String gleich mit einfachen Anführungszeichen nutzen:

echo '<img src="' .$bildurl. '">';

Du brauchst das dopplete Anführungszeichen nur dann explizit, wenn du Steuerungszeichen wie \n o.ä. verwenden möchtest.

Variablen innerhalb Echo-Anweisung

Verfasst: 08.03.2006, 21:32
von kaisen
@Graccem:
das heißt, wenn ich echo-anweisung nur mit einfachen anfürungszeichen nutze, dann brauch ich die " nicht mehr mit einem \ escapen?

Variablen innerhalb Echo-Anweisung

Verfasst: 08.03.2006, 21:36
von Graccem
Korrekt, dass erspart man sich damit auch. Hier im Web sieht es allerdings merkwürdig aus, wenn da drei Striche hintereinander stehen, aber in einem Editor sollte das kein optisches Problem sein, vor allem dann nicht, wenn er Highlighting verwendet.
st es überhaupt noch nötig vorher immer schön

$var = $_GET['var'];

die Variable einzuholen?
Das ist davon abhängig, ob register_globals off oder on ist. Bei der off-Variante kannst du die Variablen nur so einholen. Daher ist es ratsam, gleich so zu arbeiten, da dann das Projekt auf mehr Servern laufen kann.

Variablen innerhalb Echo-Anweisung

Verfasst: 08.03.2006, 21:43
von kaisen
ok danke. das mit den einfachen anführungsstrichen grenzt für mich ja shcon fast an eine kleine persönliche revolution ;)

ist nämlich verdammt viel arbeit z.b. son blödes formular zu "escapen" :roll:

also dankeschön auch an dich...

Kai

Re: Variablen innerhalb Echo-Anweisung

Verfasst: 09.03.2006, 00:05
von Metaman
Graccem hat geschrieben:
st es überhaupt noch nötig vorher immer schön

$var = $_GET['var'];

die Variable einzuholen?
Das ist davon abhängig, ob register_globals off oder on ist. Bei der off-Variante kannst du die Variablen nur so einholen. Daher ist es ratsam, gleich so zu arbeiten, da dann das Projekt auf mehr Servern laufen kann.
dem ich kann ur zustimmen.
ist besonders Lusting wenn man fertige Scripte bekommt, die auf dem einem Server laufen und auf anderen gar nichts passiert.

hatte mir vor kurzem selber ein Script gekauft, bei der Programmierer zwar eine eigene Firma hatte(was jedoch nichts aussagt) aber in sachen Programmierung eine absolute Niete ist.
der hat unter anderem SQL Tabellen angelegt, mit Spaltentyp INT(250) :lol:
und er hatte auch auf dieses $_POST... und $_GET... verzichtet.
folge davon das Script leif bei mir nicht.
er selber konnte das Problem nach 10 Tagen nicht finden, und ich auch nicht, da der PHP Code außer einigen Einstellungsdateien Codiert wurde.
naja da haben mir dann zwei Zeilen geholfen damit das Script lief.
und zwar hab ich in der config (die in jeder Datei geladen wurde) folgendes eingesetzt

Code: Alles auswählen

foreach&#40;$_GET as $getkey => $getvalue&#41; $$getkey = $getvalue; 
foreach&#40;$_POST as $postkey => $postvalue&#41; $$postkey = $postvalue; 
damit wurde dann aus $_POST['var'] ein $var

Variablen innerhalb Echo-Anweisung

Verfasst: 09.03.2006, 09:18
von Graccem
Ich hätte das Script zurückgegeben, da es nicht läuft und eine Nachbesserung auch nicht in Sicht ist.

Variablen innerhalb Echo-Anweisung

Verfasst: 09.03.2006, 10:38
von marc75
naja da haben mir dann zwei Zeilen geholfen damit das Script lief.
und zwar hab ich in der config (die in jeder Datei geladen wurde) folgendes eingesetzt
Code:
foreach($_GET as $getkey => $getvalue) $$getkey = $getvalue;
foreach($_POST as $postkey => $postvalue) $$postkey = $postvalue;


damit wurde dann aus $_POST['var'] ein $var
Da würde ich eher das Script nicht einsetzen. Man kann davon ausgehen das da noch mehr fehler drin sind. (sql-injection)