在PHP中将对象作为参数传递时消耗内存


Memory consuming while passing objects as arguments in PHP

我的问题是什么消耗更多的内存:

  1. 传递一个对象作为方法的参数
  2. 传递ID整数作为参数,然后从该ID创建一个对象

非常感谢。

由于对象在PHP中总是通过引用传递,并且从ID创建它可能会创建一个复制的对象,如果它存在于函数之外,我认为方法1更节省内存。

2将消耗更多的实际内存,因为除了对象本身之外,您还必须访问数据库(除非您使用像Doctrine 2这样的智能ORM,它保留对已经获取的对象的引用,以保存数据库访问)

1将不消耗任何内存,除了对象已经使用的内存,因为你只向它发送一个引用(在PHP中,对象默认是通过引用传递的)

我每天都会选1