PHP GC中官网循环引用的例子疑惑

salmonl 2019-08-08 06:34:18
PHP官网间接循环引用的时候,把数组作为一个元素添加到自己, 代码如下:

$a = array( 'one' );
$a[] =& $a;
xdebug_debug_zval( 'a' );


按照官网的说法,unset($a)后输入结果如下:

(refcount=1, is_ref=1)=array (
0 => (refcount=1, is_ref=0)='one',
1 => (refcount=1, is_ref=1)=...
)


而我测试的结果如下:

运行代码

$a = array( 'one' );
$a[] = &$a;

unset($a);
xdebug_debug_zval('a');


分别在php5.4.41和php7.0.1下运行:

[root@freya50 unit_test]# php5 gc.php
a: no such symbol
[root@freya50 unit_test]#
[root@freya50 unit_test]#
[root@freya50 unit_test]# php7 gc.php
a: (refcount=0, is_ref=0)=*uninitialized*


对这个不一致的结果很不理解,搜索发现很多人都是直接引用官网的例子,希望明白人指点一二。

官网相关内容地址: GC



...全文
202 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
salmonl 2019-08-09
  • 打赏
  • 举报
回复
特别感谢明白人,帮忙分析分析哈
### 内容概要 这份文档汇集了一系列针对大厂PHP工程师岗位的面试题目及对应答案,内容涵盖了单选题和多选题。题目内容广泛,包括但不限于Web服务器性能、PHP的多种运行模式、Yii框架组件、设计模式、PHP魔术方法、字符串处理函数、数据库技术、Linux系统管理、正则表达式处理、PHP数组操作、安全性问题、Shell脚本编写、面向对象编程模式、以及PHP代码的执行流程等。多选题部分则聚焦于MySQL HASH索引的相关特性。 ### 适用人群 文档面向准备应聘大厂PHP开发岗位的求职者,特别是那些希望在技术面试表现出色,获得大厂职位的候选人。此外,对于想要系统性提升PHP编程和Web开发技能的开发者,以及教育工作者和技术面试官,这份文档同样具有参考价值。 ### 使用场景及目标 使用场景可能包括: - 求职者在准备技术面试,希望通过这些题目检验和加强自己的专业知识。 - 教育和培训机构作为教学资源,帮助学生掌握行业所需的技术点和面试技巧。 - 技术面试官或招聘负责人在制定面试题目和评估标准时的参考。 用户通过学习这份文档可以: 1. 熟悉大厂PHP工程师面试的常见问题和答题策略。 2. 加深对PHP编程、Web开发、数据库优化等关键技术领域的理解。 3. 提高解决实际编程问题的能力,为技术面试的案例分析和编程挑战做好准备。 4. 增强对PHP语言核心概念、框架使用、设计模式等重要知识点的掌握。 文档的目标是辅助用户全面提升PHP编程技能,提高求职大厂的成功率,并作为技术提升的重要资源。

21,893

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧