php recursion,php5.1.6情况下,出现RECURSION。求破!!!

本文探讨了一个关于PHP中数组处理的问题,当一个数组元素引用自身时,print_r显示为RECURSION。作者发现这在json_encode时会导致无法得到预期结果,特别是在PHP较低版本中。经过研究,解决方案是将自我引用的数组元素转换为普通数组。讨论中提到了PHP版本对json_encode的影响,并指出在高版本PHP中此问题已得到解决。
摘要由CSDN通过智能技术生成

$m = array('1');

$m['a'] = $m;

print_r($m);

die;

?>

这是简单的一个测试。输出的结果是

Array ( [0] => 1 [a] => Array *RECURSION* )

但是我想要的结果是:

Array ( [0] => 1 [a] => Array ( [0] => 1 ) )

应该改那个地方? 求大神解答

回复讨论(解决方案)

求大神解答 有人碰到过这问题吗?

没人理啊没人理么?

RECURSION 递归

当出现递归现象时 print_r 就是这样显示结果的

这是正确的,因为 print_r 只不过是调试用的,意思到了就行了

RECURSION 递归

当出现递归现象时 print_r 就是这样显示结果的

这是正确的,因为 print_r 只不过是调试用的,意思到了就行了

但是我把这个$m 拿去json_encode 的时候,就没有返回值了啊?

你的 php 版本太低,json_encode 出点错是正常的

php5.2.5 都不能处理这种情况

json_encode() [function.json-encode]: recursion detected

我的PHP Version 5.3.27输出结果正是Array ( [0] => 1 [a] => Array ( [0] => 1 ) )

你的 php 版本太低,json_encode 出点错是正常的

是php版本的问题。高版本的php我测试过。 是可以的。

我现在是php5.1.6 json_encode方法是自己加上去的。

多谢各路大神。

自己找到解决方案了

$m['a'] = (array) $m;

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值