1. #1
    Lieutenant
    Dabei seit
    Mai 2016
    Beiträge
    714

    [PHP] klammern in variable

    hallo, habe hier diese zeile :

    Code:
    $_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 :/

  2. Anzeige
    Logge dich ein, um diese Anzeige nicht zu sehen.
  3. #2
    Commodore
    Dabei seit
    Mär 2007
    Beiträge
    4.681

    [PHP] AW: klammern in variable

    $_SESSION['link']="[url=$filename][img]$file[\/img][\/url]";
    Fractal Define R5 | 5820K 4.2 GHz @ 1.039V + Noctua D15S | Asus X99-AII | be quiet! Straight Power 10-CM 600W | Crucial Ballistix Sport 32GB, DDR4-2400, CL16 | MSI GeForce GTX 1070 Gaming X 8G | Samsung SSD 850 Evo 500 | Seagate Desktop HDD 2TB

  4. #3
    Lieutenant
    Ersteller dieses Themas

    Dabei seit
    Mai 2016
    Beiträge
    714

    [PHP] AW: klammern in variable

    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

  5. #4
    Lt. Commander
    Dabei seit
    Okt 2009
    Beiträge
    1.523

    [PHP] AW: klammern in variable

    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.
    Beware the software rot, my son!
    The faults that bite, the jobs that thrash!
    Beware the broken pipe, and shun
    The frumious system crash!

  6. #5
    mw197
    Gast

    [PHP] AW: klammern in variable

    Oder einfach direkt so schreiben.

    Code [php]:
    $_SESSION['link'] = '[url='.$filename.'][img]'.$file.'[/img][/url]';

  7. #6
    Commodore
    Dabei seit
    Sep 2013
    Ort
    D:\Hessen\Alheim
    Beiträge
    4.243

    [PHP] AW: klammern in variable

    Bei " versucht PHP den Inhalt zu interpretieren, bei ' nicht

    ​(War da nicht so etwas in der Art?)
    Desktop-PC: Windows 10 x64 Edu - AMD Ryzen 5 1600X @Stock - MSI X370 Gaming Pro Carbon - Noctua NH-U14S - 16Gb DDR4 TridentZ Cl16 - Gigabyte GTX670 OC - SSD 840 250Gb
    Notebook: Windows 10 - Intel i7-4500U - 8Gb DDR3 - GT750M - BX100 250Gb (Acer V7-582PG)
    Smartphone: htc One M9 @7.1.2@LOS - S-OFF

    Sysprofile: http://www.sysprofile.de/id154891
    TS³ Server: Auf Anfrage
    * Steam * CB-CS:GO-Discord * CS:GO Sticker-Generator *

  8. #7
    mw197
    Gast

    [PHP] AW: klammern in variable

    Zitat Zitat von dominic.e Beitrag anzeigen
    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.

  9. #8
    Commodore
    Dabei seit
    Mär 2007
    Beiträge
    4.681

    [PHP] AW: klammern in variable

    Was mir immer hilft:
    Code [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:
    Code [php]:
    echo "Dies ist ein Text mit einer Nachricht: {$nachricht["msg"]} ({$nachricht["nr"]})";
    Z. B.: Objekte:
    Code [php]:
    echo "Dies ist ein Text mit einer Nachricht: {$ex->getMessage()} ({$ex->getCode()})";
    Z. B.: "Dynamische" Variablen (Beispiel SimpleXML):
    Code [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.ty....syntax.single
    Gänsefüßchen: http://php.net/manual/en/language.ty....syntax.double
    Geändert von Einhörnchen (21.04.2017 um 20:26 Uhr) Grund: Doku zu Strings
    Fractal Define R5 | 5820K 4.2 GHz @ 1.039V + Noctua D15S | Asus X99-AII | be quiet! Straight Power 10-CM 600W | Crucial Ballistix Sport 32GB, DDR4-2400, CL16 | MSI GeForce GTX 1070 Gaming X 8G | Samsung SSD 850 Evo 500 | Seagate Desktop HDD 2TB

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  
Forum-Layout: Feste Breite / Flexible Breite