php。已经修炼成大虾的助我一臂之力,不知道为什么需要析构函数
发布网友
发布时间:2022-04-06 10:14
我来回答
共5个回答
热心网友
时间:2022-04-06 11:43
析构在php中一般作用还不是很大。
析构函数里,一般是啥都不写----对于PHP,析构函数都是不用写的。
因为当你的一个脚本页面关闭即卸载的时候,所有的资源就已经自动回收了。----这种回收机制在PHP以前的版本就已经实现了。
就个人的感觉之所以加如析构函数,很有点符合OOP的标准的感觉。
当然PHP里的析构也不是一无是处。如果同楼上说的,你也可以添加你需要执行的代码(函数,类啥的)在里面。当这个析构被执行的时候,就会调用你所添加的代码。
比如:一个登录类,登录完成的时候,可以在析构里写入日志记录的功能。
最后一个问题,其实前面也回答了。不用这个对象,就在你的脚本结束的时候
:假设你的一个文件a.php里只有一个类class a。当你在浏览器里关闭了a.php的浏览之后,class a的资源就自动回收了。
热心网友
时间:2022-04-06 13:01
一般析构函数是用来实现垃圾回收机制的,在声明一个对象经过一系列操作后,在结果前人工的关闭数据库、文件等释放资源的工作;当然也可以执行你想要完成的任务,总之他跟构造函数执行顺序相反却相似,相反是因为他在整个类所有方法中最后一个执行,相似是他肯定会自动执行;
热心网友
时间:2022-04-06 14:36
脚本在执行结束时,PHP 会自动销毁内存中的所有对象。对于一般的类对象无需显示的定义析构函数。但如果类对象在实例化时创建了不太容易销毁的数据(如数据存储在数据库中而不是内存中),则应当定义一个析构函数,在类对象销毁时使这些数据能够正常被销毁。
热心网友
时间:2022-04-06 16:27
析构其实对内存自动回收的语言来说意义不大... JAVA就没有析构
但析构不一定用于内存回收,因为对象被销毁,内存不一定立刻回收的,PHP应该会在某个工作时间间隔内扫描被置弃的对象,在那个时候才可能回收内存~
不过析构可以放你想在对象销毁前的其他逻辑代码
构造和析构是一个重载,PHP好像不支持其他方法的重载,不是很清楚.. 默认是空构造和析构~ 所以写不写都一样,在空的情况下!
热心网友
时间:2022-04-06 18:35
对于php脚本语言来说,他的生命周期非常短,一般来说就是一个http请求那么一瞬间,请求完毕,进程都关了,哪儿还需要手动释放内存啊?
所以,php析构函数貌似作用不大。实际上如果写非常复杂,非常占内存的脚本,这个功能还是有用的。
例如从一个数据库导入到另外一个,中途还需要正则替换。这样如果不用析构函数,内存占用会越来越大导致脚本退出。