PHP Неустранимая ошибка: время передачи по ссылке удалено

У меня старый сценарий, и в последнее время я получаю эту ошибку:

Fatal error: Call-time pass-by-reference has been removed in /****/******/public_html/****/cp-list-summary.php on line 100 

И это похоже на строку 100 в этом файле:

 if ($row[images]) { $image_set = array (); $result = mysql_query ('SELECT fname FROM ' . $dbimgs . ' WHERE listid=\'' . $_GET['id'] . '\' ORDER BY id ASC', $link); while ($images = mysql_fetch_array ($result)) { array_push (&$image_set, $images[fname]); } } 

Что вызывает ошибку и как ее исправить? Я не разработчик, поэтому, пожалуйста, расслабьтесь.

Solutions Collecting From Web of "PHP Неустранимая ошибка: время передачи по ссылке удалено"

Вы пытаетесь передать указатель на свой массив в array_push . Вот почему встречается фатальная ошибка. Просто используйте:

 array_push( $image_set, $images[fname] ); 

Примечание: array_push() вызовет предупреждение, если первый аргумент не является массивом.

Похоже, что ваш сайт php обновляется или вы повторно используете код из <php 5.3

Просто удалите & on (& $ image

Примечание. В вызове функции нет ссылочного знака – только для определения функций. Определений функций достаточно, чтобы правильно передать аргумент по ссылке. Начиная с PHP 5.3.0, вы получите предупреждение о том, что «call-time-pass-by-reference» устарело, когда вы используете & in foo (& $ a) ;. А с PHP 5.4.0 удаленный вызов был удален, поэтому его использование приведет к фатальной ошибке.

Никакие другие выражения не должны передаваться по ссылке, так как результат не определен.

Войдите в корневой каталог Joomla и выполните:

 find ./ -type f -name "*.php" -exec sed -i 's/\&\$/\$/g' {} + 

Это работает для меня.