Jas*_*vis 2 php performance class object
现在因为我刚接触使用PHP中的对象,我觉得在我的脑海中,我认为PHP对象是一个庞大而笨重的东西.这让我想减少使用它们,我感觉就像我正在使用非常简单的代码并且通过将它放入对象中而使它过于复杂.
如果我有一个数据库,缓存,会话,核心和用户对象,我需要在彼此内部和其他未提及的类中访问它们,我决定将所有这些存储在一个注册表对象中.因此,由于我对对象如何工作的知识有限,在我看来,将注册表对象传递给一个简单的对象几乎是非常重要的.就像注册表一样,它里面有5个对象.这是错的吗?注册实际上只是传递了这些对象在内存中的位置吗?或者我真的将一个非常大的物体传递到我的所有物体中?
对不起,如果这根本没有意义,希望它确实如此.我只是想更好地了解它们如何在性能方面发挥作用.
在PHP5中,默认情况下所有对象都通过引用传递.简单来说,引用只是"指向"实际对象或变量在内存中的位置(注意术语,因为"指针"在功能上与PHP的"引用"完全不同,但它们在概念上非常相似).
当您通过引用传递对象时,您只需传递非常小的内存指示器.对象本身不会被移动......它们在内存中保持不变,不会移动或重写或任何东西.这包括当您将对象放入其他对象时......只需调整引用.
OO设计和编程赋予代码的优势通常远远超过管理对象带来的微小开销.请放心,PHP解释器最好以最佳方式管理对象,并且通过传递对象而不是通过传递对整数或字符串的引用,不会产生任何额外开销.参考开销非常小.