Fatal error: Call-time pass-by-reference has been removed in

 今天在学习php的时候,遇到这样一个问题,如下:

( ! ) Fatal error: Call-time pass-by-reference has been removed in D:\xampp\htdocs\wenjian\test\app\exam\app.php on line 62
Call Stack
# Time Memory Function Location
1 0.0015 136448 {main}( ) ..\index.php:0
2 0.0496 166104 ginkgo->run( ) ..\index.php:6

找到我编写的代码如下:

$this->tpl->assign('data',&$this->data);

解决方法是:

将上面代码中的 & 符号删掉。

具体解释如下:

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

解决方案:

查看你的php.ini配置文件,把其中的 allow_call_time_pass_reference参数调整为true,并重启服务器试试。

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

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

foo(&$var);

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

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

function foo(& $var) {
//other code
}

而在调用时直接传参就行了: foo($var);

你可能感兴趣的:(php)