-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 个字段,例如姓名、年龄、地址和一个值,让我们说 Jhone, 23, arizona 什么将存储在属性中,什么将存储在 Key 中,索引在哪里以及如何提取这样的来自数据库的数据,如上面的示例,并将其分配给另一个数组。请我不需要任何代码我的代码工作正常,我需要的是一个非常原始和清晰的解释。确实提前感谢您的支持。

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 回答