Parse error
heinetz
- php
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
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.
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
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
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.