面向对象的PHP和数组

时间:2012-09-02 19:41:46

标签: php

我一直在关注一个非常有趣的教程,它真正测试了我编程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个字段,例如姓名,年龄,地址和值,请说Jhone,23,arizona将存储在属性中的内容以及将存储在Key中的内容以及索引在哪里以及如何执行foreeach从数据库中提取这些数据,如上例所示,并将其分配给另一个数组。我不需要任何代码我的代码工作正常,我需要的是一个非常原始和清晰的解释。并且事先感谢你的支持。

2 个答案:

答案 0 :(得分: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;
}

以下是您的功能,包括文档。

答案 1 :(得分: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等正在发生什么。