在PHP 5.2.x中,mySQL 5.x
我有一个问题包围我应该和不应该是PHP中的一个类的实例,因为它们在呈现页面后不会持久。
说我有一个评论列表。对我来说,每个评论都是它自己的对象是有道理的,因为我可以对它们调用动作,并且它们拥有属性。如果我用另一种语言(一种具有持久状态且可以与之交互的语言)这样做,我会这样做。
但这似乎很浪费,因为要做到这一点,我有一个调用new()的循环,这可能意味着我需要访问每个实例的数据库(也很糟糕)。
但也许我错过了一些东西。
Php在我对类和对象的看法上似乎有所不同。什么时候应该是一个类实例,什么时候不是?
答案 0 :(得分:3)
这是一个主观问题,所以我会尝试连贯地收集我的想法:
PHP中的持久性具有不同的含义。您认为每个评论应该是一个对象,因为评论具有可以在其上执行的操作似乎是正确的。对象不会在页面加载中持续存在的事实并不真正相关。在PHP中使用一个脚本的对象并不少见,该脚本在脚本完成时被销毁,然后在后续页面加载时重新实例化。
面向对象编程提供(除其他外)代码组织和代码重用。即使一个对象在脚本执行过程中只被真正使用过一次,如果在程序组织中定义它的类帮助,你也是正确的。
在问题开始成为问题之前,您通常不必担心资源浪费;如果您的服务器经常被征税,因为它会降低您的用户体验或限制您的扩展,那么现在是优化的时候了。
为您的评论定义一个类的另一个原因是,当您需要扩展该类时,这样做可能会带来好处。假设您决定实施类似评论回复的内容。回复本身只是一个评论,但是对于它引用的评论有一些额外的属性。您可以扩展Comment
对象以添加这些属性和其他功能。