# Хранение объектов в массивах в ООП на PHP

Пусть у нас дан вот такой класс `User`:

`<?php class User { public $name; public $age; public function __construct($name, $age) { $this->name = $name; $this->age = $age; } } ?>`

Подключим файл с нашим классом к файлу `index.php`:

`<?php require_once 'User.php'; ?>`

Создадим три объекта нашего класса:

`<?php $user1 = new User('john', 21); $user2 = new User('eric', 22); $user3 = new User('kyle', 23); ?>`

Давайте теперь запишем созданные нами объекты в массив `$users`:

`<?php $user1 = new User('john', 21); $user2 = new User('eric', 22); $user3 = new User('kyle', 23); $users[] = $user1; $users[] = $user2; $users[] = $user3; var_dump($users); ?>`

В общем-то переменные, в которые мы сохраняем наши объекты, и не нужны. Можем сократить наш код:

`<?php $users[] = new User('john', 21); $users[] = new User('eric', 22); $users[] = new User('kyle', 23); var_dump($users); ?>`

Давайте теперь переделаем наш код в другом стиле - добавим элементы в массив сразу при его создании:

`<?php $user1 = new User('john', 21); $user2 = new User('eric', 22); $user3 = new User('kyle', 23); $users = [$user1, $user2, $user3]; var_dump($users); ?>`

Здесь также можно избавится от промежуточных переменных:

`<?php $users = [ new User('john', 21), new User('eric', 22), new User('kyle', 23) ]; var_dump($users); ?>`

Неважно каким способом мы создаем наш массив с объектами - важен сам принцип: объекты можно хранить в массивах. Затем эти объекты можно, к примеру, перебрать циклом. Давайте сделаем это:

`<?php $users = [ new User('john', 21), new User('eric', 22), new User('kyle', 23) ]; // Переберем созданный массив циклом: foreach ($users as $user) { echo $user->name . ' ' . $user->age . '<br>'; } ?>`

Сделайте класс `City`, в котором будут следующие свойства: `name`, `population` (количество населения).

Создайте `5` объектов класса `City`, заполните их данными и запишите в массив.

Переберите созданный вами массив с городами циклом и выведите города и их население на экран.

←→
↑