下面的代码报错:Fatal error: Call-time pass-by-reference has been removed

function myFunc($arg) { do something... }

myFunc(&$arg);//Call myFunc

function myFunc(&$arg) { do something... }

myFunc(&$arg);//Call myFunc

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

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

Changelog for allow_call_time_pass_reference 版本     说明
    5.4.0     从 PHP 中移除。
    5.3.0     Emits an E_DEPRECATED level error.
    5.0.0     Deprecated, and generates an E_COMPILE_WARNING level error.

函数调用时引用传参已经被移除了,就是不能通过function(&$a)这种方式传参调用函数.
解决方案:
查看你的php.ini配置文件,把其中的 allow_call_time_pass_reference参数调整为true,并重启服务器试试。

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

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

myFunc(&$arg);//Call myFunc

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

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

function myFunc(&$arg) { do something... }

而在调用时直接传参就行了:

myFunc($var);//Call myFunc

Fatal error: Call-time pass-by-reference has been removed的更多相关文章

  1. PHP Fatal error: Cannot pass parameter 2 by reference

    PHP Fatal error:  Cannot pass parameter 2 by reference in 这个错误的意思是:不能按引用传递第2个参数 我的理解是: 方法的第2个参数 需要传递 ...

  2. FATAL ERROR: Could not find ./bin/my_print_defaults的解决办法

    对mysql数据库初始化过程中,会有如下报错信息: 1 2 3 4 5 6 7 [root@localhost scripts]# ./mysql_install_db --user=mysql FA ...

  3. dxut.h(29): fatal error C1083: Cannot open include file: 'dxsdkver.h': No such file or directory

    从网上download一个三维演示模型的软件编译发现报找不到dxsdkver.h文件,网上查阅这是MS的DirectX sdk中的库文件,于是先download DirectX SDK 安装之后,配置 ...

  4. FATAL ERROR: Could not find ./share/fill_help_tables.sql

    [root@c01 mysql-5.6.33]# /apps/mysql-5.6.33/scripts/mysql_install_db --datadir=/data/my_db --user=my ...

  5. FATAL ERROR: Could not find ./bin/my_print_defaults 解决方法

    FATAL ERROR: Could not find ./bin/my_print_defaults If you compiled from source, you need to run 'ma ...

  6. fatal error C1045: 编译器限制 : 链接规范嵌套太深

    前言 我相信你是遇到了同样的问题.通过搜索引擎来到这里的.为了不耽误排查问题的时间,我提前说明一下这篇文章所描述的问题范畴: 我遇到的问题和 c++ 模板相关: 如果我减少传递的参数的话,是有可能避免 ...

  7. Fatal error in launcher Unable to create process using 'dapppythonpython37python

    Fatal error in launcher: Unable to create process using '"d:\app\python\python37\python.exe&quo ...

  8. 4.Android 打包时出现的Android Export aborted because fatal error were founds [closed]

    Android 程序开发完成后,如果要发布到互联网上供别人使用,就需要将自己的程序打包成Android 安装包文件(Android Package,APK),其扩展名为.apk.使用run as 也能 ...

  9. PHP严重致命错误处理:php Fatal error: Cannot redeclare class or function

    1.错误类型:PHP致命错误 Error type: PHP Fatal error Fatal error: Cannot redeclare (a) (previously declared in ...

  10. Slave I/O: Got fatal error 1236

    [起因] 一次zabbix报警,从库[Warning] MySQL-repl was down  # 不知道主库/storage空间小于20%时为什么没有触发trigger [从库错误日志] 1611 ...

随机推荐

  1. [moka同学笔记]YII2.0 判断签约状态,sql的两种查询方法

    方法一: //判断签约状态 $signed = 0; $sql="SELECT * from usho_community_sign_record WHERE com_id=$r->i ...

  2. linux下MySQL表名忽略大小写设置

    最近公司项目的MySQL数据库要迁移到linux下,部署时日志总是显示报找不到一个表,用MYSQL查看明明有这个表.后来经百度,原来LINUX下的MYSQL默认是区分表名大小写的. 用命令查看当前是否 ...

  3. JAVA JDK的动态代理反射实现

    动态代理类使用到了一个接口InvocationHandler和一个代理类Proxy ,这两个类配合使用实现了动态代理的功能. 什么是动态代理呢?  普通代理类是指: 给每个具体类写一个代理类,以后要使 ...

  4. JSON.NET 使用技巧

    1. 序列化相关技巧 通过特性忽略某些属性 有时候我们会有这样的需求,我们只需要序列化实体类中的一部分属性,这时候我们可以通过声明忽略掉一些我们不需要序列化的属性,有两种方式可以使用么达到这个目标: ...

  5. 25款专业的 WordPress 电子商务网站主题

    WordPress 作为最流行的博客系统,插件众多,易于扩充功能.安装和使用都非常方便,而且有许多第三方开发的免费模板,安装方式简单易用.这篇文章和大家分享35款专业的 WordPress 电子商务网 ...

  6. JS中数组排序

    法一:升序原理:循环嵌套即双向遍历,在从前往后的遍历过程中,如果前一个位子大于后一个位子,把前一个位子的值付给后一个位子, 在从后往前遍历过程中如果前一个值大于后一个的值,把前面的值付给后面,过程中把 ...

  7. OpenGL中旋转平移缩放等变换的顺序对模型的影响

    l 前提: 0x01. 假设绘制顶点的语句为Draw Array,变换的语句(旋转.平移.缩放)为M,而 M0; M1; M2; Draw Array; 则称对Array先进行M2再进行M1.M0 0 ...

  8. Python开发GIS的应用组件包

    Library name Description Reason to install   NumPy This adds support for large multidimensional arra ...

  9. SharePoint 2013 通过审计获取文档下载次数

    1.创建一个文档库,进入库设置,找到”Information management policy settings”,点进去,如下图: 2.分别设置”Document”.”Folder”两个,如下图: ...

  10. [outlook]打开以后就自动进入安全模式的解决方法。Outlook start in safe mode.

    给客户写了一个Outlook的add-in, 用现在时髦的话应该叫outlook的app. 这个add-in的作用就是把outlook中的email,直接上传到SharePoint中.想要代码的联系我 ...