Пусть у нас дан вот такой класс 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
,
заполните их данными и запишите в массив.
Переберите созданный вами массив с городами циклом и выведите города и их население на экран.