Only variables can be passed by reference

$explode2 = @end(explode('.', $fetched_delete_data['image']));
$explode3 = @explode('.', $fetched_delete_data['image']);

Есть вот такой код, при анализе кода IDE'шкой, выходит ошибка "Only variables can be passed by reference", связанная с этим кодом. Вопрос, как исправить данную ошибку?, и если я её исправлю, то другой код возможно связанный с этим местом, не сломается ли?
P.S - Версия в IDE - PHP 5.6/7.4, соответственно фикс должен быть совместим с этими версиями.


Ответы (1 шт):

Автор решения: Алексей Шиманский

end принимает к себе на вход только переменную, т.к. работает с ней по ссылке. https://www.php.net/manual/ru/function.end.php

Список параметров ¶

array

Массив. Этот массив передаётся по ссылке, потому что он модифицируется данной функцией. Это означает что вы должны передать его как реальную переменную, а не как функцию, возвращающую массив, так как по ссылке можно передавать только фактические переменные.

Нужно результат explode положить в отдельную переменную и уже еë передавать в end

→ Ссылка