Я не уверен, что понимаю

Я не уверен, правильно ли я понимаю метод 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;
}

}

0

Решение

Это создает ассоциативный массив, элементы которого соответствуют выбранным свойствам объекта. Массив $db_table_fields перечисляет эти свойства. Затем он проходит через этот массив и проверяет, $this содержит свойство с каждым именем. Если свойство существует, оно добавляет запись в $properties массив, ключом которого является имя свойства, а значением которого является значение свойства. Это критическая линия:

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

$properties[$db_field] = означает создать элемент $properties массив, ключ которого $db_field (текущий элемент цикла). А также $this->$db_field использования $db_field как имя свойства для доступа в текущем объекте.

1

Другие решения

Это создает то, что называется «ассоциативный массив». Это означает, что массив индексируется с использованием строкового ключа вместо числового индекса.

Для получения дополнительной информации, ознакомьтесь с документацией для массивов:
Массивы в PHP

0

По вопросам рекламы [email protected]