代码之家  ›  专栏  ›  技术社区  ›  JasonDavis

关于PHP对象性能的一些问题

  •  2
  • JasonDavis  · 技术社区  · 15 年前

    现在,由于我不熟悉在PHP中使用对象,我觉得在我的头脑中,我认为一个PHP对象是一个大而笨重的东西。这使我不想经常使用它们,我觉得我正在使用非常简单的代码,并通过将它放入对象中而使它变得非常复杂。

    如果我有一个数据库、缓存、会话、核心和用户对象,并且我需要在彼此内部以及在其他未提到的类中访问它们,那么我决定将所有这些内容存储在一个注册表对象中。因此,由于我对对象如何工作的知识有限,我几乎认为将注册表对象传递到一个简单对象中是非常重要的事情。就像一个注册中心在里面保存着这5个对象一样。这是错的吗?注册表是否真的只传递这些对象在内存中的位置的引用?或者我真的把一个很大的物体传给我所有的物体?

    很抱歉,如果这完全没有意义,希望是有意义的。我只是想更好地了解他们是如何工作的。

    2 回复  |  直到 15 年前
        1
  •  5
  •   zombat    15 年前

    在php5中,默认情况下,所有对象都是通过引用传递的。简单来说,引用只是“指向”实际对象或变量在内存中的位置(注意术语,因为“指针”在功能上与PHP的“引用”非常不同,但在概念上非常相似)。

    当您通过引用传递对象时,您只是传递非常小的内存指示器。对象本身不会移动…它们在内存中保持不变,不会移动、重写或任何东西。这包括将对象放入其他对象中时…参考文献只是简单的调整。

    OO设计和编程给您的代码带来的好处通常远远超过了管理对象带来的少量开销。请放心,PHP解释器尽其所能优化管理对象,并且传递对象不会比传递对整数或字符串的引用产生更多的开销。参考开销非常小。

        2
  •  1
  •   Bandi-T    15 年前

    推荐阅读: PHP References

    推荐文章