heinetz: Parse error

Hallo Forum,

ich installiere gerade meine Anwendung a.d. Produktionsserver und erhalte zwei Parse Errors:

Parse error: syntax error, unexpected '[', expecting ')' … on line 33

#33 get_values(array('from' => 'tcr_tc_documents', 'where' => 'id='.$_id, 'fields' => '*'.((isset($_GET['options']['duplicate']))?", ".$_SESSION['usr']['id']." as owner":"")))[0]

Parse error: syntax error, unexpected '[', expecting ')' … on line 89

#89 preg_split("/\./", preg_split("/\r\n|\n/", $page['data']['template']['header']['article_nr']['value'])[0])[1];

Beide enthalten eine Konstruktion a lá:

echo array('a', 'b')[0];

Kann ich das irgendwie zu Laufen bekommen ohne auf diese Konstruktion zu verzichten?

gruss, heinetz

  1. Lieber heinetz,

    echo array('a', 'b')[0]; [...] Kann ich das irgendwie zu Laufen bekommen ohne auf diese Konstruktion zu verzichten?

    aktualisiere die PHP-Version auf dem Server.

    Liebe Grüße,

    Felix Riesterer.

    --
    "Wäre die EU ein Staat, der die Aufnahme in die EU beantragen würde, müsste der Antrag zurückgewiesen werden - aus Mangel an demokratischer Substanz." (Martin Schulz, Präsident des EU-Parlamentes)
    1. Hallo,

      mittlerweile habe ich auch herausgefunden, dass das eins der Features ab PHP5.4 ist. Ich gehe nicht davon aus, dass sich der Server so einfach aktualisieren lässt. Daher stelle ich mir immernoch die Frage, ob es auch mit den Bordmitteln von PHP5.3 machbar ist.

      gruss, heinetz

      1. Hi,

        Daher stelle ich mir immernoch die Frage, ob es auch mit den Bordmitteln von PHP5.3 machbar ist.

        Nur, wenn du den Code entsprechend umschreibst.

        MfG ChrisB

        --
        Kids these days just don’t get ASCII art any more – it’s all UTF-this and Unicode-that with those youngsters …
  2. Tach!

    Beide enthalten eine Konstruktion a lá: echo array('a', 'b')[0];

    Im Grunde genommen ist sowas ja ziemlich unwirtschaftlich. Da erzeugst du erst ein Array, nimmst aber nur ein Element daraus und wirfst den Rest direktamente weg. Andererseits hast du zumindest keinen Einfluss auf die PHP-Funktionen und kannst es kaum verhindern, dass du ein Array mit überflüssigem Inhalt bekommst, wenn du nur einen Wert haben möchtest. Jedenfalls gab es lange Zeit keine Möglichkeit, auf die Elemente eines Array als Funktionsergebnis direkt zuzugreifen. Man musste den Umweg über eine Variable nehmen (was letzten Endes noch ein Stück ineffizienter war). Das direkte Zugreifen hat erst eine der aktuelleren Versionen ermöglicht.

    dedlfix.