-5

Php をプログラミングする私の能力を実際にテストした非常に興味深いチュートリアルに従っています。私はいつも自分が男だと思っていましたが、結局は最悪の男でした. そうは言っても、チュートリアル中にオブジェクトをインスタンス化する要件が説明されていたので、このコードを入力しましたが、誤解しないでください。すべてが正常に機能し、まったく問題ありません。主なことは、その下で物事がどのように機能するかを本当に理解していないということです。そのため、誰かにもっと説明してもらいたいのです. MySQL_fetch_array を使用してデータベースからレコードを取得するときの私の質問は、受信変数にどのようなデータがどのように提示されるかです。たとえば、怒鳴る

private static function instantiate($record){
 $object = new self;
   foreach($record as $attribute => $value){
     if($object->has_attribute($attribute)){
      $object->$attribute =$value;
     }
   }
   return $object;
 }

名前、年齢、住所、値など、テーブルに 3 つのフィールドがある場合、アリゾナ州 23 歳の Jhone とします。属性に格納されるものとキーに格納されるもの、およびインデックスはどこにあり、foreach はそのようなものをどのように抽出しますか上記の例のようにデータベースからデータを取得し、それを他の配列に割り当てます。コードは必要ありません。コードは正常に機能しています。必要なのは、非常に原始的で明確な説明です。ご支援いただき、誠にありがとうございます。

4

2 に答える 2

1
/**
 * @param array $record Record as returned from database
 *
 */
private static function instantiate($record){
    //Create a new instance of this class.
    $object = new self;
    //Iterate the record to find all of the data
    foreach($record as $attribute => $value){
        //If this class has a defined attribute which was found in the record
        if($object->has_attribute($attribute)){
            //Set it to the value from the database.
            $object->$attribute =$value;
        }
    }
    //Return the instance for others to use
    return $object;
}

これが、ドキュメント付きの関数です。

于 2012-09-02T19:47:13.683 に答える
0

本当に役立つのは、メソッド内のものを出力することです (print_rたとえば)。たとえば、メソッドでこれを試してください。

private static function instantiate($record){
 print_r($record);
 $object = new self;
 print_r($object);
   foreach($record as $attribute => $value){
     echo "attribute: $attribute, value:$value <br />";
     if($object->has_attribute($attribute)){
      $object->$attribute =$value;
     }
   }
   print_r($object);
   die();
   return $object;
 }

そうすれば、オブジェクト、foreach などで何が起こっているかを正確に確認できます。

于 2012-09-02T20:02:18.227 に答える