Я не уверен, правильно ли я понимаю метод 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;
}
}
Это создает ассоциативный массив, элементы которого соответствуют выбранным свойствам объекта. Массив $db_table_fields
перечисляет эти свойства. Затем он проходит через этот массив и проверяет, $this
содержит свойство с каждым именем. Если свойство существует, оно добавляет запись в $properties
массив, ключом которого является имя свойства, а значением которого является значение свойства. Это критическая линия:
$properties[$db_field] = $this->$db_field;
$properties[$db_field] =
означает создать элемент $properties
массив, ключ которого $db_field
(текущий элемент цикла). А также $this->$db_field
использования $db_field
как имя свойства для доступа в текущем объекте.
Это создает то, что называется «ассоциативный массив». Это означает, что массив индексируется с использованием строкового ключа вместо числового индекса.
Для получения дополнительной информации, ознакомьтесь с документацией для массивов:
Массивы в PHP