Получить первый элемент массива довольно часто встречающаяся задача. Популярное решение это использовать функцию reset
. Она сбрасывает внутренний указатель массива на первый элемент и возвращает значение первого элемента если он есть, в противном случае false
.
Но так как аргумент ей передается по ссылке, то ей например нельзя передать результат выполнения функции:
$el = reset(my_func());
Результатом будет ошибка Only variables should be passed by reference
. Т.е. результат сначала нужно присвоить в переменную, а потом передавать в функцию reset
.
Как вариант можно использовать более длинный, зато не страдающий таким недостатком способ:
$el = (new ArrayIterator(my_func()))->current();
Но еще лучше, я бы рекомендовал не заниматься херней, а использовать какую-нибудь библиотеку в которой уже реализована функция first()
;) Например, http://anahkiasen.github.io/underscore-php/. Тогда все будет еще проще:
$el = Arrays::first(my_func());