この質問は、Mysql results in PHP - arrays or objects? に似ています。しかし、私の質問は、そこで議論されていることを拡張しています。
データベースの結果を操作するのにどちらの形式が適しているかを判断しようとしています:オブジェクトまたは配列。私はパフォーマンスについて心配していません (私が理解していることから、ほとんど違いはありません)。また、結果を作成、更新、または削除するのではなく、結果を表示することに重点を置いています。
今日まで、私は常にmysqli_fetch_object
や PDO のような関数を介してオブジェクトを使用してきましたfetchObject
。結合を開始するまで、これは通常うまく機能します。結合は、2 つ以上のテーブルからのフィールドのブレンドである奇妙なオブジェクトにつながります。私のコードはすぐに混乱し始めます。
私は特定のクラス名を割り当てており、デフォルトに固執していないことに注意してくださいstdClass
。これは、自分のクラスで作成したヘルパー メソッドにアクセスできるようにするためです。例えば:
foreach ($members as $member)
{
echo $member->full_name();
echo $member->age();
}
わかりやすくするために、すべてのデータベース結果を配列に移行することを検討しています。私が読んだことから、他の人もこれを行っています。ただし、これにより、ヘルパー メソッドに簡単にアクセスする方法がなくなります。
full_name()
上記の例を使用すると、大したことではなく、メソッドを使用する代わりに姓と名の両方を出力できたと思います。age() メソッドに関しては、一般的なユーティリティ クラスを作成してそこに配置できると思います。
私の質問:
- (モデル) オブジェクトを使用する場合、結合をどのように処理しますか?
- 配列を使用する場合、ヘルパー メソッドをどのように処理しますか?