PHP析构函数的简单使用

PHP析构函数的简单使用
随着面向对象编程的普遍扩张,许多有趣的问题,提出了面向对象的。相信很多新手学习PHP面向对象的两个函数,构造函数和析构函数,构造函数似乎更多的使用,是用更少的析构函数(相对于有限的编程经验的初学者)的功能,被称为创建构造函数。当对象。析构函数不被调用时,对象被销毁。

析构函数通常是由一些资源发布交易,如fopen()、Fclose()、imagecreatefromjepg(),和imagedestory()。这些都是常见的例子,我们可以把它用作一个普通函数,当对象被破坏或脚本执行时,它将被执行。

这么罗嗦,还是尽快为今天的主要问题:
< PHP
类测试{
公共功能__destruct(){
执行析构函数;
}
}
1美元=新的测试;
美元美元美元TEST2 = = 1试验;
unset(1美元);


这个脚本执行的结果是什么

在回答这个问题之前,回头看的话我明显。我们认为我们应该考虑取消($ test1)在输出分频器,这样我们可以调用析构函数和输出文本。至于美元美元后test2,test3脚本执行调用析构函数。也就是说,对一个文本的分割线,将输出,和两款将分割线下输出,这时,你可以在所有有点自豪,,当你知道如何调用析构函数。但这是真的吗我们可以看看执行的结果。
嘿,他喵,他是怎么输出一个句子的

事实上,我们忽略了一个重要的先决条件,也就是说,默认的对象是引用赋值,很多人没有注意到它,我希望初学者能更加注意它。

所以现在的参考配置,与我们常见的变量的理解相结合,很快我们就认为三变量名指向同一个存储器地址。所以在这种情况下,尚未有什么影响(1美元)破坏变量指向存储地址还是破坏存储在存储地址中的内容

了解取消使用()函数,请直观地跳过这一段。

想想这个鸡蛋的问题,它不像是去看手册。

同样是传递参数,它是通过变量名指向存储地址的破坏。与通常的unset()函数,我们可以说,当多个变量名或一个对象的存储地址的名称,unset()函数只能是摧毁变量名称和地址储存,当只有一个变量名或对象的名称,未被指定的内存地址的内容。

我们可以想像,实际存储的是电视。许多人(多变量名或对象名)正在看电视。后撤消(),一个男人不看,左,和电视还开着。当只有一个人看电视,unset(),当人们离开,要关掉电视,即释放占用的存储空间。如果你感兴趣,你也可以看看三的PHP函数的递归实现。
好了,回到主题。后撤消($ test1),原来的对象仍在。当输出分割线,执行脚本时,调用析构函数,因为只有一个对象,调用析构函数,只有一次。输出上面应该是合理的。

其他一些有趣的问题:有许多方法来调用程序中的一个析构函数。对象是否被设置为空或假,剩余的物体仍然不受影响。这仍然是不同于普通变量。(未固化的效果()函数是相同的),如果你有兴趣试试。

另一个尴尬的事情:我们都知道,构造函数可以使用__construct(),却忽略了同样的构造函数。那么,让我们看看吧。

最后,让我们看一个例子。
< PHP
*
*创建2009-11-18
*
*将此生成文件的模板更改为
*窗的偏好- PHPEclipse PHP代码模板
* /
班级学生{
属性
私人捐款;
私有名称;
私人性别;
私人年龄;

私有静态值= 0;
功能__construct($ pname)
{
美元->名称= $ pname;
自我::$ + +;
}

__destruct()函数
{
自我数;
}

静态函数get_count()
{
返回自我;
}
}

美元=新学生(汤姆);
打印(学生::get_count());

美元=新学生(杰里);
打印(学生::get_count());

$ = null;
打印(学生::get_count());

$ = null;
打印(学生::get_count());
>
以上的代码段是PHP5析构函数的具体使用方法,希望对你有帮助。
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部