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

标签 php performance class object

现在,由于我刚开始在 PHP 中使用对象,我觉得在我的脑海中,我认为 PHP 对象是一个又大又笨重的东西。这让我不想经常使用它们,我觉得我正在使用非常简单的代码,然后将其放入对象中,从而使其变得过于复杂。

如果我有一个数据库、缓存、 session 、核心和用户对象,并且我需要在彼此内部以及其他未提及的类中访问它们,我决定将所有这些存储在注册表对象中。因此,由于我对对象如何工作的了解有限,在我看来,通过将注册表对象传递给简单对象是一件非常大的事情。就像注册表中保存着这 5 个对象一样。这是错误的吗?注册表真的只传递这些对象在内存中位置的引用吗?或者我真的将一个非常大的对象传递给我的所有对象吗?

抱歉,如果这根本没有意义,希望它有意义。我只是想更好地了解它们与性能的关系。

最佳答案

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

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

面向对象设计和编程赋予代码的优势通常远远超过管理对象带来的微小开销。请放心,PHP 解释器会尽力以最佳方式管理对象,并且传递对象不会比传递整数或字符串的引用产生更多的开销。引用开销非常小。

关于php - 关于PHP对象性能的一些问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2125663/

相关文章:

Python - 低效的空间距离计算(如何加速)

Ruby: block 和产量

php - 批处理表创建

php - wamp服务器apache phpmyadmin和数据库访问失败

php - 如何在 WordPress 中获取当前的分类术语 ID(不是 slug)?

iOS 在类方法中使用未声明的标识符来创建新实体

C++ 嵌套模板返回类型

php - FPDF - 它可以处理混合方向(纵向/横向)的原始 PDF 吗?

apache-flex - 如何提高purePDF的性能?

linux - 是否可以测量 Linux 进程的累积 IO 等待时间?