Почему 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, '-')); Но я предпочитаю решение списка, это более элегантно!