当前位置:  开发笔记 > 编程语言 > 正文

__destruct PHP的可见性

如何解决《__destructPHP的可见性》经验,为你挑选了2个好方法。

__destruct()功能的"可见性"应该是公开的还是其他的?我正在尝试为我的小组编写标准文档,这个问题出现了.



1> Dan Soap..:

除了Mark Biek的回答:

必须将__destruct()函数声明为public.否则,在脚本关闭时不会执行该函数:

Warning: Call to protected MyChild1::__destruct() from context '' during shutdown ignored in Unknown on line 0
Warning: Call to private MyChild2::__destruct() from context '' during shutdown ignored in Unknown on line 0

这可能不是有害的,而是不洁净的.

但最重要的是:如果析构函数被声明为private或protected,则运行时将在垃圾收集器尝试释放对象时抛出致命错误:


输出

Fatal error: Call to private MyChild::__destruct() from context '' in D:\www\scratchbook\destruct.php on line 20

(感谢Mark Biek的出色表现!)



2> Mark Biek..:

我认为在子类需要显式调用父类的__destruct方法的情况下需要公开.

像这样的东西会引发错误:


推荐阅读
linjiabin43
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有