Ant*_*ton 9 php deprecated fatal-error
我有一个古老的脚本,最近我得到这个错误:
Fatal error: Call-time pass-by-reference has been removed in /****/******/public_html/****/cp-list-summary.php on line 100
Run Code Online (Sandbox Code Playgroud)
它看起来像是在该文件的第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]);
}
}
Run Code Online (Sandbox Code Playgroud)
是什么导致错误以及如何解决?我不是开发人员,所以请慢慢来.
Pas*_*cal 23
看起来你的网站php已升级或你正在重用<php 5.3中的代码
只需删除&&(&$ image
注意:函数调用上没有引用符号 - 仅在函数定义上.单独的函数定义足以通过引用正确传递参数.从PHP 5.3.0开始,当您在foo(&$ a);中使用&时,您将收到一条警告,指出"call-time pass-by-reference"已弃用.从PHP 5.4.0开始,删除了调用时传递引用,因此使用它会引发致命错误.
不应该通过引用传递其他表达式,因为结果是未定义的.
hjp*_*r92 11
您正试图将指针传递给您的数组array_push.这就是遇到致命错误的原因.只需使用:
array_push( $image_set, $images[fname] );
Run Code Online (Sandbox Code Playgroud)
注意:
array_push()如果第一个参数不是数组,则会发出警告.