Manipolazione di oggetti nelle classi in OOP in PHP

Le classi come parametri di metodi possono accettare oggetti di altre classi e manipolare questi oggetti. Vediamo un esempio. Supponiamo di avere la seguente classe:

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

Supponiamo di voler creare una classe che manipolerà un insieme di oggetti utente:

php<?php
  class UsersCollection {
    
  }
?>

Memorizzeremo gli oggetti utente come array in una proprietà privata:

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

Creiamo un metodo per aggiungere un nuovo utente all'array:

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

Ora creiamo un metodo che visualizzerà i nomi di tutti gli utenti:

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>';
      }
    }
  }
?>

Vediamo come funziona la nostra classe. Per prima cosa creiamo il suo oggetto:

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

Ora aggiungiamo alla nostra collezione diversi utenti:

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

Ora chiamiamo il metodo che visualizzerà i nomi di tutti gli utenti:

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

Crea una classe EmployeesCollection, che conterrà un array di dipendenti.

Задание 2

Crea in questa classe un metodo per aggiungere un nuovo dipendente.

Задание 3

Crea in questa classe un metodo per visualizzare tutti i dipendenti.

Задание 4

Crea in questa classe un metodo per calcolare il salario totale di tutti i dipendenti.

Задание 5

Crea in questa classe un metodo per calcolare il salario medio di tutti i dipendenti.