ВНИМАНИЕ: Запись на курсы по HTML, CSS, JavaScript, PHP, Python, React, Vue, Laravel и другим фреймворкам и CMS,
а также: помощь в поиске работы и заказов, стажировка на реальных проектах→
⊗ppOpAdCOM 22 of 107 menu
Вступайте в телеграмм-канал сайта code.mu: новинки, статьи, интервью, задачи, бесплатные курсы и тренинги. Жми для вступления:)

Манипуляция объектами в классах в ООП в PHP

Классы параметрами методов могут принимать объекты других классов и манипулировать этими объектами. Давайте посмотрим на примере. Пусть у нас есть следующий класс:

<?php class User { private $name; public function __construct($name) { $this->name = $name; } public function getName() { return $this->name; } } ?>

Пусть мы решили сделать класс, который будет манипулировать набором объектов с юзерами:

<?php class UsersCollection { } ?>

Будем хранить объекты с юзерами в виде массива в приватном свойстве:

<?php class UsersCollection { private $users; public function __construct() { $this->users = []; } } ?>

Сделаем метод для добавления нового юзера в массив:

<?php class UsersCollection { private $users; public function __construct() { $this->users = []; } public function add($user) { $this->users[] = $user; } } ?>

А теперь сделаем метод, который выведет имена всех юзеров:

<?php class UsersCollection { private $users; public function __construct() { $this->users = []; } public function add($user) { $this->users[] = $user; } public function show() { foreach ($this->users as $user) { echo $user->getName() . '<br>'; } } } ?>

Давайте посмотрим на работу нашего класса. Для начала создадим его объект:

<?php $uc = new UsersCollection(); ?>

Теперь добавим в нашу коллекцию несколько юзеров:

<?php $uc->add(new User('john')); $uc->add(new User('eric')); $uc->add(new User('kyle')); ?>

А теперь вызовем метод, который выведет имена всех юзеров:

<?php $uc->show(); ?>

Сделайте класс EmployeesCollection, который будет содержать массив работников.

Сделайте в этом классе метод для добавления нового работника.

Сделайте в этом классе метод для вывода всех работников.

Сделайте в этом классе метод для расчета суммарной зарплаты всех работников.

Сделайте в этом классе метод для расчета средней зарплаты всех работников.

byenru