Ответ 1
Вы не можете использовать разыменование функциональных массивов
return f1(/*some args*/)[0];
до PHP 5.4.0 и выше.
У меня есть функция, которая возвращает массив. У меня есть другая функция, которая просто возвращает первую строку, но по какой-то причине она заставляет меня использовать промежуточную переменную, то есть это не удается:
function f1(/*some args*/) {
return /*an array*/;
}
function f2(/*some args*/) {
return f1(/*some args*/)[0];
}
., с:
Ошибка анализа: синтаксическая ошибка, неожиданная '[' in util.php в строке 10
Но это работает:
function f1(/*some args*/) {
return /*an array*/;
}
function f2(/*some args*/) {
$temp = f1(/*some args*/);
return $temp[0];
}
Я не смог найти что-либо подходящее онлайн (мои поиски смущались людьми с "?", "{", "<" и т.д.).
Я учусь на PHP - есть ли причина, почему я не могу сделать это прямо, что я пропустил?
Вы не можете использовать разыменование функциональных массивов
return f1(/*some args*/)[0];
до PHP 5.4.0 и выше.
Причиной такого поведения является то, что функции PHP не могут быть привязаны, как функции JavaScript. Также возможно document.getElementsByTagNames('a')[0]
.
Вы должны придерживаться второго подхода для версии PHP < 5.4
Добавлена функция разыменования функциональных массивов, например. Foo() [0].