我不确定我是否理解了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;
}
}
答案 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