$instance->find()
повертає посилання на змінну.
Ви отримуєте звіт, коли намагаєтесь використовувати це посилання як аргумент функції, не зберігаючи його спочатку у змінній.
Це допомагає запобігти витоку пам'яті і, можливо, стане помилкою в наступних версіях PHP.
Ваш другий блок коду видасть помилку, якщо він напише як (зверніть увагу на &
підпис функції):
function &get_arr(){
return array(1, 2);
}
$el = array_shift(get_arr());
Тож швидким (і не таким приємним) виправленням буде:
$el = array_shift($tmp = $instance->find(..));
В основному, ви спочатку призначаєте тимчасовій змінній і надсилаєте змінну як аргумент.