# Переменные названия свойств объектов в PHP

Названия свойств объектов можно задавать через переменные. Пусть у нас есть вот такой класс `User`:

`<?php class User { public $name; public $age; public function __construct($name, $age) { $this->name = $name; $this->age = $age; } } $user = new User('john', 21); echo $user->name; // выведет 'john' ?>`

На примере этого класса мы сейчас разберем то, что названия свойств можно хранить в переменной.

К примеру, пусть у нас есть переменная `$prop`, в которой лежит строка `'name'`. Тогда обращение `$user->$prop` по сути эквивалентно обращению `$user->name`. Такое хитрое обращения к свойствам класса используется редко, но иногда бывает полезно.

Посмотрим на примере:

`<?php $user = new User('john', 21); $prop = 'name'; echo $user->$prop; // выведет 'john' ?>`

Сделайте класс `City`, в котором будут следующие свойства - `name`, `foundation` (дата основания), `population` (население). Создайте объект этого класса.

Пусть дана переменная `$props`, в которой хранится массив названий свойств класса `City`. Переберите этот массив циклом `foreach` и выведите на экран значения соответствующих свойств.

← →
↑