0

我不确定我是否理解 properties() 方法正确它从 $db_table_fields 中提取值并将它们作为数组 $properties 中的键并将它们分配为同一数组的值...?

不想只是复制/粘贴代码试图理解它..

class User{

    protected static $db_table = "users";
    protected static $db_table_fields = array('username','password','first_name','last_name');
    public $id;
    public $username;
    public $password;    
    public $first_name;
    public $last_name;

    protected function properties(){
        $properties = array();
        foreach(self::$db_table_fields as $db_field ){
            if(property_exists($this,$db_field)){
                $properties[$db_field] = $this->$db_field;
            }
        }
        return $properties;
    }

}
4

2 回答 2

1

它正在创建一个关联数组,其元素对应于对象的选定属性。该数组$db_table_fields列出了这些属性。然后它遍历该数组并检查是否$this包含每个名称的属性。如果属性存在,它将向$properties数组中添加一个条目,其键是属性名称,值是属性值。这是关键线:

$properties[$db_field] = $this->$db_field;

$properties[$db_field] =表示创建一个$properties数组元素,其键为$db_field(循环的当前元素)。并$this->$db_field用作$db_field在当前对象中访问的属性名。

于 2016-05-25T18:51:32.893 回答
0

它正在创建所谓的“关联数组”。这意味着数组是使用字符串键而不是数字索引来索引的。

有关更多信息,请查看数组的文档: PHP中的数组

于 2016-05-25T18:46:20.347 回答