Manipulimi i objekteve në klasat në OOP në PHP

Klasat si parametra të metodave mund të pranojnë objekte nga klasa të tjera dhe të manipulojnë këto objekte. Le të shohim një shembull. Le të themi se kemi klasën e mëposhtme:

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

Le të themi se kemi vendosur të bëjmë një klasë, e cila do të manipulojë një grup objektesh me përdorues:

php<?php
  class UsersCollection {
    
  }
?>

Do të ruajmë objektet me përdorues në formën e një grupi në një pronë private:

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

Le të bëjmë një metodë për shtimin e një përdoruesi të ri në grup:

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

Dhe tani le të bëjmë një metodë, e cila do të shfaqë emrat e të gjithë përdoruesve:

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

Le të shohim punën e klasës sonë. Së pari le të krijojmë objektin e saj:

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

Tani le të shtojmë në koleksionin tonë disa përdorues:

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

Dhe tani le të thërrasim metodën, e cila do të shfaqë emrat e të gjithë përdoruesve:

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

Bëni klasën EmployeesCollection, e cila do të përmbajë një grup punonjësish.

Задание 2

Bëni në këtë klasë një metodë për shtimin e një punonjësi të ri.

Задание 3

Bëni në këtë klasë një metodë për shfaqjen e të gjithë punonjësve.

Задание 4

Bëni në këtë klasë një metodë për llogaritjen e pagës totale të të gjithë punonjësve.

Задание 5

Bëni në këtë klasë një metodë për llogaritjen e pagës mesatare të të gjithë punonjësve.