PHP - 在内存使用方面有和没有方法的对象之间的区别?

时间:2016-12-02 20:45:00

标签: php object memory model-view-controller

我对在MVC中设计模型层感到困惑。 阅读此帖后:Models in mvc (best practices, PHP)

正如您所看到的,有两种方法可以在上面的帖子中设计模型图层。

想象一下,你有一个Book模型:

第一种方式:Book纯粹是一个对象,Book等属性有idtitle ......

Book甚至没有idtitle属性的第二种方式,它还有returnPagesearchPageallBooks方法。

如果我创建了10.000个书籍对象,内存使用会有什么不同 - 所有书籍都有相同的方法来比较书籍只有属性?

我应该将其他类中的returnPagesearchPage等逻辑方法分开吗?

1 个答案:

答案 0 :(得分:0)

该类的每个实例都将存储函数方法的属性和指针,该函数将存储一次类。当调用方法函数形成实例时,它将跳转到用方法指针存储的函数,然后执行该函数。当函数执行时,函数调用者将使用调用堆栈来存储临时值。每个调用者都有自己的调用堆栈,因此在调用类函数时实例之间不会发生冲突。