1

データベースから何かを返すとき、デフォルトでは Codeigniter メソッドはオブジェクトを返します (つまり、 $this->db->result()vs $this->db->result_array()、row/row_array についても同じです)。

私は教育ではなく純粋な興味による開発者なので、これがばかげた質問である場合は申し訳ありませんが、それが何を返すかが問題であり、命名規則に基づいて、配列よりもオブジェクトを好むように見えるのはなぜですか? PHP開発者が配列を愛していると言えるのはいつですか?

私はいくつかの背景を読みましたが、PHP 5 以降では、配列とオブジェクトの実行の違いはごくわずかです。これまでのところ、私が遭遇した唯一の違い->[].

この質問はおそらく Codeigniter に固有のものではありませんが、それが私の基準です。

4

1 に答える 1

0

APIがこのようになった理由の背後にある歴史はわかりませんが、オブジェクトをフェッチすると、さまざまなネイティブPHP*_fetch_object()が行うように、CI db libにデータを使用してカスタムクラスをインスタンス化できます。

 $query = $this->db->query("SELECT * FROM users;");
 foreach ($query->result('User') as $row) {
     // $row is not an instance of User
 }

デフォルトstdObjectの s はあまり有用ではありませんが、私の意見では、これらはとアクセスのArrayObject両方をサポートするため、より良い解決策になるでしょう。->[]

于 2013-03-23T19:25:51.387 に答える