php5.3系列版本以及以前版本,传引用没有什么问题,升级到php5.4以后,传引用的地方,全报错
Fatal error: Call-time pass-by-reference has been removed in D:\www\test\test.php on line 6。看一下下面的例子。
 
例1,递归传引用,在php 5.3及以及版本,测试结果
<?php 
function test($a,&$b){ 
    if($a < $b){ 
        echo $b."<br>"; 
        $b--; 
        test($a,&$b); 
    } 

$a = 3; 
$b = 6; 
test($a,&$b); 
//运行结果如下 



?>

php 5.4以后就不行了,我是用php 5.4.11测试的。报Fatal error: Call-time pass-by-reference has been removed in D:\www\test\test.php on line 6。
 
例2,php5.4.11上面测试,只测试传引用
<?php 
function test($a,&$b){ 
    if($a < $b){ 
        $b--; 
        echo $b."<br>"; 
        //test($a,&$b); 
    } 

$a = 3; 
$b = 6; 
test($a,$b);  //php5.4以前版本,输出结果是5 
 
//test($a,&$b); //php5.3输出结果是5,php5.4及以后,报错Fatal error: Call-time pass-by-reference 。。。。 
?>

php5.4以后,定义时可以有&,调用时加上&就会报错。这样调用感觉很怪。
 
例3,php5.4以及递归传引用
<?php 
function test($a,&$b){ 
    if($a < $b){ 
        $b--; 
        echo $b."<br>"; 
        test($a,$b); 
    } 

$a = 3; 
$b = 6; 
test($a,$b); 
//php5.2,php5.3,php5.4都可以运行,运行结果: 



?>

 

感觉这个5.3升到5.4有点坑爹,如果不知道改变的,升级就很郁闷了。
本次系统正好升级PHP到5.4(原来是5.3),升级后,相关功能不能正常使用,经查,其中原因正是这个
其中采用递归传引用的方式获取部门信息,造成了错误。
如下图:
 
修改的结果是:不论哪种环境,定义时可以有&,调用时不要&,是目前最为兼容的一种写法。

PHP传引用报错(5.4版本)的更多相关文章

  1. array_walk_recursive 地址引用报错的问题

    今天看十八哥的视频,学习array_walk_recursive的用法,发现一直报错: PHP版本:5.6.19 代码界面: 报错界面: 查了很长时间,不知道什么问题,后来在网上终于找到原因所在: + ...

  2. spring jpa 实体互相引用返回restful数据循环引用报错的问题

    spring jpa 实体互相引用返回restful数据循环引用报错的问题 Java实体里两个对象有关联关系,互相引用,比如,在一对多的关联关系里 Problem对象,引用了标签列表ProblemLa ...

  3. Linux - xshell上传文件报错乱码

    xshell上传文件报错乱码,解决方法 rz -be 回车 下载sz  filename

  4. Azkban上传文件报错installation Failed.Error chunking

    azkaban 上传文件报错Caused by: java.sql.SQLException: The size of BLOB/TEXT data inserted in one transacti ...

  5. Tomcat上传文件报错:returned a response status of 403 Forbidden

    出现这样的错误是没有权限对服务器进行写操作.需要在这个项目所在的tomcat中配置可写操作即可: 在tomcat的web.xml添加下面代码: <init-param><param- ...

  6. ojdbc15-10.2.0.4.0.jar maven 引用报错 Dependency 'com.oracle:ojdbc15:10.2.0.4.0' not found

    ojdbc15-10.2.0.4.0.jar maven 引用报错 问题现象 在 Maven 工程中引用 ojdbc15-10.2.0.4.0.jar 报错,报错信息:Dependency 'com. ...

  7. rz上传文件报错:rpm Read Signature failed: sigh blob(1268): BAD, read returned 0

    上传文件报错: [root@www localdisk]# rpm -ivh cobbler* error: cobbler-2.8.4-4.el7.x86_64.rpm: rpm  Read  Si ...

  8. 【问题与解决】Github 上传代码报错(error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version)

    今天修改了GitHub 的代码,代码更新,想上传更新,却发现上传报错. 错误代码:error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 al ...

  9. 上传文件报错System.Net.ProtocolViolationException: 必须先将 ContentLength 字节写入请求流,然后再调用 [Begin]GetResponse。

    在上传文件的时候报错. 错误: System.Net.ProtocolViolationException: 必须先将 ContentLength 字节写入请求流,然后再调用 [Begin]GetRe ...

随机推荐

  1. iOS之KVO和KVC

    概述 由于ObjC主要基于Smalltalk进行设计,因此它有很多类似于Ruby.Python的动态特性,例如动态类型.动态加载.动态绑定等.今天我们着重介绍ObjC中的键值编码(KVC).键值监听( ...

  2. [置顶] Datalist嵌套datalist,页面传值,加密,数据绑定

    <asp:DataList ID="dlMajor" runat="server" CssClass="dllist" OnItemD ...

  3. 记录一次centos升级gblic的教训

    前些天公司项目需要对上传的图片打水印,前端采用angularjs,后端nodejs,网上一搜,找到了一个images的库,在本地Windows环境下试了下还不错,然后就上传测试服务器(centos6. ...

  4. Java strictfp关键字

    保证浮点运算的结果不受平台的影响,在任何平台上,使用统一的标准进行浮点运算,提高程序的可移植性(毕竟结果更可控,更精确),相应的,以降低性能为代价 Strictfp ensures that you ...

  5. wxPython ImportError DLL load failed: %1 不是有效的 Win32 应用程序 解决办法

    原因:python是32位的,装了64位的Wxpython时会报错,具体错误是安装库文件与python的动态库的位数未一致. 特别留意32位/64位指的不是 系统的位数,而是Python的位数. 64 ...

  6. 【S】【S】【S】一大波前端干货整合(一)

      前端交流站点 大前端       http://www.daqianduan.com/ V2EX       http://www.v2ex.com/ W3cplus    http://www. ...

  7. div置于页面底部

    一直对于页面置底有一些困惑,下面这个例子不知道能不能解决 <!DOCTYPE html> <html lang="en"> <head> < ...

  8. ns2出现Client: Handoff Attempt的情况解决

    找到mac/mac-802_11.cc,这是系统本身一个bug,对于adhoc网络无需进行切换尝试. > if (*rcount == 3 && handoff == 0) {& ...

  9. 学习笔记_Java_day13_三层的HelloWorld程序(15)--不错,整体三层架构学习

    分三层写:养成一个架构的习惯,如何编写一个大型网站 DAO数据层 service业务层 servlet web表述层

  10. 查看编译后的calss文件编译jdk版本

    使用UtralEdit或者sublime text打开编译后的.class文件, 其中cafe babe为magic number(魔数),标识这个文件是java的class文件. 0033转换成10 ...