Answers:
不要将Java的OO与PHP的混淆。Java是一种单一范例语言,这意味着它仅适用于OO。另一方面,PHP是一种多范式语言,您可以执行函数式编程或OO,也可以两者兼而有之。
现在不存在OO的“错误”实现。Java的OO不是所有其他语言都应该或必须遵循的明确实现。有一些明确的概念,并且两种语言都以自己的方式完全实现了它们(从一开始就是Java,从版本5开始就是PHP)。
因此,回答您的问题:CI所做的以及您在使用CI做的事情在PHP世界中都是正确的。PHP的数组是其最灵活,最有用的结构之一,当您的数据只是信息(不携带逻辑)时,在对象上使用数组实际上是一件好事。完整的OO代码与“仅OO代码”不同。
如果您从PHP入手,请使用Java作为良好OO实践的参考,但不要因为Java的不同而限制您对PHP的理解。您真的可以同时解决这两个问题,如果您不了解这些概念,那么范例将无法挽救您。
无论如何,如果您发现自己更喜欢Java(作为个人喜好)(请参考Ruby)来进行Web开发,它们之间的关系就更紧密了。
使用对象而不是数组只是因为它不是OO范式,而是个人喜好:)
对象可以在IDE中方便地完成代码,可以使用接口(类型提示)和继承。
如果您想使用对象而不是数组是因为看到了任何好处,请使用它们;但是,如果您只是因为对象而使用它们,则不要浪费时间进行重构:)
objects just because they are objects
这不是重构的理由:)阅读我的回答,不仅是评论。
我认为这只是一个调整问题-编程中有许多“对象”实现-Python和Javascript具有截然不同的属性。PHP OO可以说是一种技巧-PHP数组不是传统意义上的“对象”,但它们的作用显而易见。除非您希望数据具有自定义行为,否则为什么要使用对象?
编辑:
回复:不可变的价值对象
http://bradley-holt.com/2010/09/immutable-value-objects-in-php/