Манипулација со објекти во класи во ООП во PHP

Класите како параметри на методи можат да прифаќаат објекти од други класи и да манипулираат со тие објекти. Да погледнеме на пример. Нека имаме следнава класа:

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

Да речеме дека решивме да направиме класа, која ќе манипулира со колекција од објекти кои претставуваат корисници:

php<?php
  class UsersCollection {
    
  }
?>

Ќе ги чуваме објектите корисници во форма на низа во приватно својство:

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

Да направиме метод за додавање на нов корисник во низата:

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

А сега да направиме метод кој ќе ги прикаже имињата на сите корисници:

php<?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<?php
  $uc = new UsersCollection();
?>

Сега да додадеме во нашата колекција неколку корисници:

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

А сега да го повикаме методот кој ќе ги прикаже имињата на сите корисници:

php<?php
  $uc->show();
?>
Задание 1

Направете класа EmployeesCollection, која ќе содржи низа од вработени.

Задание 2

Направете во оваа класа метод за додавање на нов вработен.

Задание 3

Направете во оваа класа метод за приказ на сите вработени.

Задание 4

Направете во оваа класа метод за пресметка на вкупната плата на сите вработени.

Задание 5

Направете во оваа класа метод за пресметка на просечната плата на сите вработени.