我不确定我是否理解

I'm not sure if I understand

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

不想只是 copy/paste 试图理解它的代码..

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

}

它正在创建所谓的 'associative array'。这意味着数组是使用字符串键而不是数字索引来索引的。

有关详细信息,请查看数组的文档: Arrays in PHP

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

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

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