Почему я не могу сразу получить доступ к взорванному элементу массива?

Почему я не могу сразу получить доступ к элементам в массиве, возвращенном explode()?

Например, это не работает:

$username = explode('.',$thread_user)[1]; 
//Parse error: syntax error, unexpected '[

Но этот код делает:

$username = explode('.',$thread_user); 
$username = $username[1];

Я обычно не программирую в PHP, таким образом, это довольно сбивает с толку меня.

7
задан Mike Atlas 15 February 2010 в 21:43
поделиться

3 ответа

На самом деле PHP просто не поддерживает этот синтаксис. В таких языках, как Javascript (например), синтаксический анализатор может обрабатывать более сложные операции вложения / цепочки, но PHP не является одним из этих языков.

4
ответ дан 6 December 2019 в 10:00
поделиться

Поскольку explode() возвращает массив, вы можете использовать другие функции, например $username = current(explode('.',$thread_user));

2
ответ дан 6 December 2019 в 10:00
поделиться

Причина неочевидности того, как сделать то, что вы хотите, заключается в том, что explode может вернуть false. Вы должны проверить возвращаемое значение перед индексированием в него.

6
ответ дан 6 December 2019 в 10:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: