ученикам: ушел в отпуск до 15-го июня. в отпуске буду по возможности отвечать на вопросы, но могу пропадать

Хранение объектов в массивах

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

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

Давайте создадим 3 объекта этого класса:

<?php $user1 = new User('Коля', 21); $user2 = new User('Вася', 22); $user3 = new User('Петя', 23); ?>

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

<?php $user1 = new User('Коля', 21); $user2 = new User('Вася', 22); $user3 = new User('Петя', 23); $users[] = $user1; $users[] = $user2; $users[] = $user3; var_dump($users); ?>

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

<?php $users[] = new User('Коля', 21); $users[] = new User('Вася', 22); $users[] = new User('Петя', 23); var_dump($users); ?>

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

<?php $user1 = new User('Коля', 21); $user2 = new User('Вася', 22); $user3 = new User('Петя', 23); $users = [$user1, $user2, $user3]; var_dump($users); ?>

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

<?php $users = [ new User('Коля', 21), new User('Вася', 22), new User('Петя', 23) ]; var_dump($users); ?>

Неважно каким способом мы создаем наш массив с объектами - важен сам принцип: объекты можно хранить в массивах.

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

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

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

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

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