回答:
Javaのオブジェクト指向とPHPを混同しないでください。Javaは単一のパラダイム言語であり、オブジェクト指向のみを実行します。一方、PHPはマルチパラダイム言語であり、関数型プログラミングまたはオブジェクト指向、あるいはその両方を実行できます。
現在、オブジェクト指向の「悪い」実装などはありません。Javaのオブジェクト指向は、他のすべての言語が従うべき、または従わなければならない決定的な実装ではありません。いくつかの明確な概念があり、両方の言語は独自の方法でそれらを完全に実装します(最初からJava、バージョン5からPHP)。
ですから、あなたの質問に答えるには:CIが何をし、それを使って何をしているのかはPHPの世界で正しいことです。PHPの配列は、最も柔軟で便利な構造の1つであり、データが単なる情報である場合(オブジェクトにロジックを持たない場合)、オブジェクトに対して配列を使用することは実際には良いことです。完全なオブジェクト指向コードは、「オブジェクト指向コードのみ」と同じものではありません。
PHPを使用する場合は、適切なOOプラクティスのリファレンスとしてJavaを使用してください。ただし、「Javaはそれとは異なる」ことにより、PHPの理解を制限しないでください。あなたは本当に両方を台無しにすることができます、あなたが概念を得ないならば、パラダイムはあなたを救いません。
いずれにせよ、Javaを好みに合わせて(個人的な好みとして)Web開発用のRubyをチェックする場合、それらはもう少し密接に関連しています。
オブジェクトがオブジェクト指向のパラダイムではないという理由だけで、配列の代わりにオブジェクトを使用するのは、単に個人的な好みです:)
オブジェクトはIDEで便利なコード補完を提供し、インターフェイス(タイプヒンティング)と継承を使用できます。
利点があるために配列ではなくオブジェクトを使用する場合-オブジェクトを使用するが、オブジェクトであるという理由だけで使用する場合は、このリファクタリングに時間を無駄にしないでください:)
objects just because they are objects
はしていませんが、リファクタリングの理由ではないと確信しています:)コメントだけでなく、答えを読んでください。
オブジェクト指向システムで実際にデータを渡すのではなく、オブジェクトを渡します。違いは、オブジェクトにはデータだけでなく動作も含まれていることです。そのため、データ指向ではなくオブジェクト指向と呼んでいます。
データの振る舞いを必要としない限り、プレーンな古いphp配列は値オブジェクトと同じくらい良い(または悪いことに、あなたの視点に応じて)。
これは単なる調整の問題だと思います-プログラミングには「オブジェクト」の実装が数多くあります-PythonとJavascriptのプロパティは著しく異なります。PHP OOは間違いなくハックです。PHP配列は伝統的な意味では「オブジェクト」ではありませんが、明らかに目的を果たします。データにカスタムの動作をさせたくないのであれば、なぜオブジェクトを使用するのですか?
編集:
re:不変の値オブジェクト
http://bradley-holt.com/2010/09/immutable-value-objects-in-php/