-1

オブジェクトに db のデータを入力する必要があります。簡単かつ迅速に行う方法が 2 つあります。

リフレクションの利用(子プロパティをロウキー名​​で設定)

class Base
{
    public function SetElementByRow($row) 
    {
        foreach($row as $key=> $val)
        {
            $ref_class = new \ReflectionClass($this);
            $ref_class->getProperty($key)->setValue($val);
        }
    }
}

プロパティを文字列で取得する

class Base
{
   protected $_row;

   public function SetElementByRow($row) 
   {
       $this->_row = $row;
   }

  public function GetPropByKey($key)
  {
      return $this->_row[$key];
  }
}

どう思いますか?より良いバリアントはありますか?何がいいですか?

4

2 に答える 2

0

あなたが何を求めているのか、ちょっと不明です。「オブジェクトに db からのデータを入力する必要があります」から始めた場合、明らかな答えは「そうします。データベース インターフェイス ライブラリを使用すると、それらが作成されます」ということになります。

汎用のキー/値の格納に適したクラス定義を知りたい場合は、次の質問に続きます。最初のコード ブロックはかなりばかげているので、絶対に使用しないでください (なぜリフレクションを使用するのですか?わからないので使用しないでください)。2 番目の例は、完全に通常のクラスです。

ただし、これらのコードブロックはどちらも、データベースの結果からオブジェクトのデータを取得することとは関係ありません。

于 2013-09-19T23:51:52.163 に答える