Intereting Posts
Эффективный способ определения того, какие значения в CSV НЕ находятся в БД? PHP Regex для нескольких символов Unicode json_decode возвращает NULL в строке, прошедшей через шифрование Передача SMS / текстовых сообщений через PHP Преобразование timestamp ко времени назад в PHP, например, 1 день назад, 2 дня назад … Как загрузить facebook sdk асинхронный Лучший способ совместного использования базы данных между классами Требования к OSX – Composer – lib-openssl Как преобразовать строку в float с «хвостом»? Yii2 Session Storage в БД, слишком много строк? Представление? Как получить день недели из временной метки Unix (PHP)? PHP / RegEx – конвертировать URL-адреса в ссылки, обнаруживая .com / .net / .org / .edu и т. Д. mysqli_num_rows () ожидает, что параметр 1 будет mysqli_result, boolean означает, что и как его можно исправить? Обновить столбец только для таблицы, в котором есть вход Как назначить массив PHP массиву jQuery?

Строгая стандартная ошибка

Функция parse_users возвращает массив.

Я делаю следующее в другой функции:

 return reset($this->parse_users($records)); 

Но я получаю Strict Standards: Only variables should be passed by reference in...

Это потому, что я выполняю функцию reset() для функции?

Должен ли я сделать это так:

 $users = $this->parse_users($records); return reset($users); 

Или что-то еще?

Это точно. reset принимает ссылку на массив как параметр, поэтому в основном требуется реальная переменная для ссылки – даже если это значение перекрестной ссылки.

почему ты не попробовал

 $users = $this->parse_users($records); return reset($users); 

?

Это верно

Однострочное решение использует дополнительную пару скобок; это превратит ссылку в переменную и опустит ошибку:

 return reset( ( $this->parse_users($records) ) ); 

Из документации PHP для сброса :

смешанный сброс (массив и $ массив)

reset () перематывает внутренний указатель массива на первый элемент и возвращает значение первого элемента массива.

Функция PHP reset () принимает ссылку на массив. Строгое предупреждение возникает потому, что вы напрямую передаете результат parse_users для сброса, без возможности доступа к этому массиву в другой функции.

Если вы пытаетесь вернуть полный массив (а не только первое значение) после его сброса, вы должны использовать:

 $users = $this->parse_users($records); reset($users); return $users; 

Кроме того, если вы просто хотите получить первое значение от parse_users, вы можете просто использовать:

 $users = $this->parse_users($records); return $users[0]; 

Функция сброса нужна только тогда, когда вы выполняете итерацию по массиву и хотите убедиться, что вы начинаете с самого начала.