您的位置:首页 > Web前端

Fatal error: Call-time pass-by-reference has been removed in E:\xx\db\mysqli.php on line 267

2014-07-31 08:03 543 查看
php升级后调试旧程序出现以下问题:

意思是调用时引用传参已经被移除了,就是不能通过function(&$a)这种方式传参调用函数.

解决方案:

方案一、查看你的php.ini配置文件,将其中的 allow_call_time_pass_reference开启,并重启服务器试试。

======================================

方案二、

简单来说就是将调用函数的时候参数前面的“&”符号去掉。

以前的php代码在升级到5.4版本的php可能会出现这种错误:

名字

allow_call_time_pass_reference
默认

"1"
可修改范围

PHP_INI_PERDIR
更新日志

在 PHP 4.0.0 时是 PHP_INI_ALL。 在 PHP 5.4.0 中移除该选项。
<span style="font-size:18px;">// 正确写法
function myFunc(&$arg) { do something... }

myFunc($var);//Call myFunc

//错误写法
function myFunc($arg) { do something... }

myFunc(&$arg);//Call myFunc  </span>


当我们这样使用函数(或者类)的话,会产生一个error:

foo(&$var);

实际上,这样用本来就是错的,只是之前的错误级别仅仅是Deprecated而已。

而正确的使用方法应该是在函数定义时:

function foo(& $var) {

//other code

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐