У меня старый сценарий, и в последнее время я получаю эту ошибку:
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]); } }
Что вызывает ошибку и как ее исправить? Я не разработчик, поэтому, пожалуйста, расслабьтесь.
Вы пытаетесь передать указатель на свой массив в 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' {} +
Это работает для меня.