Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我来自 C++,我经常使用 RAII。
据我所知,PHP 使用自动内存管理,那么通过 PHP 的构造函数/析构函数使用 RAII 是否仍然适用/良好的做法?
据我所知,我不相信 RAII 可以在 PHP 中实现。不保证在关联对象作用域时调用析构函数,而是在 PHP 运行时认为不再引用该对象时调用。因此,对于 RAII,它可能不那么可靠。可能值得详细阅读此文档:
http://php.net/manual/en/language.oop5.decon.php
由于 RAII 用于锁定线程、文件操作。在 php 中你没有线程,只有分叉。没关系,将核心对象分配并创建到构造函数中,并在析构函数中释放内存,即使 php 5.3 具有非常好的垃圾收集器,这仍然是一种很好的做法。