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

约定不等于承诺〃 2022-06-17 07:12 243阅读 0赞

今天在学习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);

解决方法是:

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

具体解释如下:

  1. 意思是调用时引用传参已经被移除了,就是不能通过function(&$a)这种方式传参调用函数.
  2. 解决方案:
  3. 查看你的php.ini配置文件,把其中的 allow_call_time_pass_reference参数调整为true,并重启服务器试试。
  4. ======================================
  5. 此外,以前的php代码在升级到5.4版本的php可能会出现这种错误:
  6. 当我们这样使用函数(或者类)的话,会产生一个error:
  7. foo(&$var);
  8. 实际上,这样用本来就是错的,只是之前的错误级别仅仅是Deprecated而已。
  9. 而正确的使用方法应该是在函数定义时:
  10. function foo(& $var) {
  11. //other code
  12. }
  13. 而在调用时直接传参就行了: foo($var);

发表评论

表情:
评论列表 (有 0 条评论,243人围观)

还没有评论,来说两句吧...

相关阅读