我不确定我是否理解

时间:2016-05-25 18:40:42

标签: php arrays object-properties

我不确定我是否理解了property()方法 它从$ db_table_fields中取出值,并将它们放在数组$属性中,并将它们指定为同一数组的值......?

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

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;
    }

}

2 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:0)

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

有关更多信息,请查看Arrays的文档: Arrays in PHP