2016-10-01 4 views
2

私は現在、データベースの照会やデータの処理の際にのみオブジェクトを出力する必要があるプロジェクトに取り組んでいます。私は他のシニア開発者から、オブジェクトはメモリの面では「安い」と言い、それに同意します。PHP:オブジェクトの標準化に対する配列は良いか悪いですか?

だから、私の質問:

  • 私は、クエリの結果として配列を持っている場合。アレイが存在するので、アレイを「そのまま」使用しないでください。
  • これをオブジェクトに変換するのは実際には(標準化以外の)良い習慣ですか?
  • 実際にパフォーマンスが向上しますか? (結果をオブジェクトに変換することによって、私は基本的に同じデータを含む既存の配列のほかに別のエンティティを作成しているため、把握できません)。

答えて

1

私の意見では、これらのオブジェクトをオブジェクトに変換しないでください。 あなたはすでに配列として持っているので、それらをオブジェクトに変換/コピーすると、与えられた時間に多くのメモリが必要になり、オブジェクトと配列の両方で終わります。あなたが絶対にOOPの機能(継承、私的所有権/メソッド、...)を必要としないなら、配列に固執するべきです。

ただし、データベースをフェッチし、結果として配列の代わりにオブジェクトを取得することができます。 (PDO fetchAllを参照してください)次に、配列を持たないオブジェクトを既に持っています。

これらの両当事者がパフォーマンスの面でどのように機能するのだろうかとお知りになりたい場合は、 Using arrays VS objects for storing dataをご覧ください。

私が理解しているところから(でも私も間違っているかもしれません)PHP arraysは、古典的なC配列に比べて配列ではありません。 PHP配列は、自由度がある、つまり配列のサイズを変更する(単純に値を追加する)ことができるので、オブジェクトの一種です。したがって、C配列とまったく同じパフォーマンスを持つわけではありません。

結論:あなたの配列を維持してください。オブジェクトの利点が必要ない場合は、リソースを変換するためにリソースを使用する必要はありません。結局のところ、プログラミングスタイル、ベストプラクティス、プロジェクトガイドラインの問題でもあります。

+0

私はあなたに完全に同意します。オブジェクトの機能を悪用しないと、配列の変換のメリットはありません。私たちのチームは現在、データベースコネクタ層はまだ変更されておらず、配列のみを出力する巨大なプロジェクトをリファクタリングしています。このように、私は、データを複製するだけなので、配列を変換するとパフォーマンスが向上しないとの主張を持ち出しましたが、それでもまだ十分な高齢者がいましたので、私の思考が本当に間違っているかどうか推測します。概要をありがとう! – Jay

関連する問題