源码论坛公告:本站是一个交流学习建站资源的社区论坛,旨在交流学习源码脚本等资源技术,欢迎大家投稿发言! 【点击此处将锦尚放在桌面

源码论坛,商业源码下载,尽在锦尚中国商业源码论坛

 找回密码
 会员注册

QQ登录

只需一步,快速开始

查看: 10244|回复: 0
打印 上一主题 下一主题

[PHP编程] Warning: Call-time pass-by-reference has been deprecated解决方法

[复制链接]

1169

主题

1557

帖子

8820

金币

超级版主

Rank: 8Rank: 8

积分
19326
跳转到指定楼层
1#
发表于 2019-1-23 20:38:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
具体原因我不再多说了,涉及到一些技术问题(实际是我也搞得不是太明白,哈哈),这里给出解决办法:

修改php.ini就可以了。

1. 在PHP.ini中搜索关键字 : allow_call_time_pass_reference 没有的自行建立;

2. 将 Off 改成 On ,Web Server重起就OK了;

allow_call_time_pass_reference = Off 变成 allow_call_time_pass_reference = On

3.下面的释义有兴趣学习的可以看下:

文档注解为:

是否启用在函数调用时强制参数被按照引用传递。此方法已不被赞成并在 PHP/Zend 未来的版本中很可能不再支持。鼓励使用的方法是在函数定义中指定哪些参数应该用引用传递。鼓励大家尝试关闭此选项并确保脚本能够正常运行,以确保该脚本也能在未来的版本中运行(每次使用此特性都会收到一条警告,参数会被按值传递而不是按照引用传递)。

在函数调用时通过引用传递参数是不推荐的,因为它影响到了代码的整洁。如果函数的参数没有声明作为引用传递,函数可以通过未写入文档的方法修改其参数。要避免其副作用,最好仅在函数声明时指定那个参数需要通过引用传递。

要引用传入参数,可以两种方法:

第一种

  1. function test1($a,$b){

  2. $b = "fun_test1";

  3. return;

  4. }

  5. $a = "a_value";

  6. $b = "b_value";

  7. test1($a,&$b);
复制代码
第二种

  1. function test2($a,&$b){

  2. $b = "fun_test2";

  3. return;

  4. }

  5. $a = "a_value";

  6. $b = "b_value";

  7. test2($a,$b);
复制代码


第一种情况就有可能会出现“Call-time pass-by-reference has been deprecated”这样的警告,所以建议使用第二种。

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享
您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

锦尚中国源码论坛

聚合标签|锦尚中国,为中国网站设计添动力 ( 鲁ICP备09033200号 ) |网站地图

GMT+8, 2024-4-20 19:41 , Processed in 0.028296 second(s), 16 queries .

带宽由 锦尚数据 提供 专业的数据中心

© 锦尚中国源码论坛 52jscn Inc. 非法入侵必将受到法律制裁 法律顾问:IT法律网 & 褚福省律师 锦尚爱心 版权申诉 版权与免责声明