Переменные названия свойств объектов в 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
и выведите на экран значения соответствующих
свойств.