PHP klammern in variable

Sarius87

Banned
Registriert
Mai 2016
Beiträge
888
hallo, habe hier diese zeile :

PHP:
$_SESSION['link']="[url=$filename][img]$file[/img][/url]";

doch irgendwie macht das Probleme :

Code:
PHP Syntax Check: Parse error: syntax error, unexpected '/', expecting identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING) in your code on line 1


doch wie muss das richtig heißen ? in ' anstatt " kommt kein fehler aber dann stehen da ja die variablen einfach so und nicht deren inhalt :/
 
PHP:
$_SESSION['link']="[url=$filename][img]$file[\/img][\/url]";
 
geht auch nicht...

Code:
PHP Syntax Check: Parse error: syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE), expecting identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING) in your code on line 1
 
PHP interpretiert die eckigen Klammern als Array-Klammern, versucht also, auf "$file[/img]" zuzugreifen, und das geht schief, weil /img kein gültiger Array-Index ist.

Versuch mal, die Namen der Variablen in geschweifte Klammern einzufassen, also "${file}[/img]", dann sollte es gehen.
 
Oder einfach direkt so schreiben.

PHP:
$_SESSION['link'] = '[url='.$filename.'][img]'.$file.'[/img][/url]';
 
Bei " versucht PHP den Inhalt zu interpretieren, bei ' nicht

​(War da nicht so etwas in der Art?)
 
dominic.e schrieb:
Bei " versucht PHP den Inhalt zu interpretieren, bei ' nicht

​(War da nicht so etwas in der Art?)
​Ja, so kann man das sagen. Bei String mit " wird gleichzeitig auch übersetzt. Also wenn da Variablen drin stehen, versucht er diese aufzulösen und halt zu verarbeiten. Dadurch ist das System natürlich damit auch langsamer.
​Macht man es wie in meinem Post mit ' spuckt PHP quasi einfach nur aus ohne vorhandene Variablen zu übersetzen und man muss dann ggf. verketten.
 
Was mir immer hilft:
PHP:
echo "Dies ist ein Text mit einer Nachricht: {$nachricht}";

Die geschweiften Klammern sind hier zwar sinnlos, helfen aber in anderen Situationen:

Z. B.: Arrays:
PHP:
echo "Dies ist ein Text mit einer Nachricht: {$nachricht["msg"]} ({$nachricht["nr"]})";

Z. B.: Objekte:
PHP:
echo "Dies ist ein Text mit einer Nachricht: {$ex->getMessage()} ({$ex->getCode()})";

Z. B.: "Dynamische" Variablen (Beispiel SimpleXML):
PHP:
echo $movies->movie->{'great-lines'}->line;
Edit: Zu deiner Frage was es mit den ' und " auf sich hat:
Strings allgemein: http://php.net/manual/en/language.types.string.php
Einfache Hochkommas: http://php.net/manual/en/language.types.string.php#language.types.string.syntax.single
Gänsefüßchen: http://php.net/manual/en/language.types.string.php#language.types.string.syntax.double
 
Zuletzt bearbeitet: (Doku zu Strings)
Zurück
Oben