Objektide manipuleerimine klassides OOP-s PHP-s

Klassid võivad meetodite parameetritena võtta teiste klasside objekte ja neid objekte manipuleerida. Vaatame seda näite varal. Olgu meil järgmine klass:

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

Oletame, et otsustasime teha klassi, mis manipuleerib koguga kasutajaobjektidest:

php<?php
  class UsersCollection {
    
  }
?>

Hoiame kasutajaobjekte privaatse omadusena massiivis:

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

Teeme meetodi uue kasutaja lisamiseks massiivi:

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

Ja nüüd teeme meetodi, mis väljastab kõikide kasutajate nimed:

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

Vaatame meie klassi töötamist. Alustuseks loome selle objekti:

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

Nüüd lisame meie kogusse mõne kasutaja:

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

Ja nüüd kutsume välja meetodi, mis väljastab kõikide kasutajate nimed:

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

Tehke klass EmployeesCollection, mis sisaldab töötajate massiivi.

Задание 2

Tehke selles klassis meetod uue töötaja lisamiseks.

Задание 3

Tehke selles klassis meetod kõikide töötajate väljastamiseks.

Задание 4

Tehke selles klassis meetod kõikide töötajate summaarse palga arvutamiseks.

Задание 5

Tehke selles klassis meetod kõikide töötajate keskmise palga arvutamiseks.