Ошибка анализа на взрыве ('-', 'foo-bar') (например)

Почему php не поддерживает этот синтаксис:

$s = explode('-', 'foo-bar')[0]; 

?

Это ограничение в парсере PHP. Нет причин, по которым он не может поддерживать эту форму сокращения, просто нет.

Вы можете написать его, используя list :

 list($first_value) = explode('-','foo-bar'); 

Синтаксис 'foo-bar')[0] неверен в отношении php. Я не знаю, на каком языке вы видели такую ​​вещь, но PHP не имеет реализации для такого синтаксиса. Однако вы можете разделить строку следующим образом:

 explode('-', 'foo-bar'); 

Вместо этого вы можете использовать это, если вы вынуждены использовать inline: substr ($ var, 0, strrpos ($ var, '-')); Но я предпочитаю решение списка, это более элегантно!