PHP'de OOP'de Sınıflarda Nesne Manipülasyonu

Sınıflar, metod parametreleri olarak diğer sınıfların nesnelerini alabilir ve bu nesneleri manipüle edebilir. Bir örnek üzerinden inceleyelim. Aşağıdaki sınıfa sahip olduğumuzu varsayalım:

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

Diyelim ki kullanıcı nesneleri koleksiyonunu manipüle edecek bir sınıf yapmaya karar verdik:

php<?php
  class UsersCollection {
    
  }
?>

Kullanıcı nesnelerini özel bir özellikte dizi olarak saklayacağız:

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

Diziye yeni kullanıcı eklemek için bir metod yapalım:

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

Şimdi de tüm kullanıcıların isimlerini yazdıracak bir metod yapalım:

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

Sınıfımızın çalışmasına bir göz atalım. Öncelikle onun bir nesnesini oluşturalım:

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

Şimdi koleksiyonumuza birkaç kullanıcı ekleyelim:

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

Şimdi de tüm kullanıcıların isimlerini yazdıracak metodu çağıralım:

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

Çalışanlar dizisini içerecek EmployeesCollection sınıfını yapın.

Задание 2

Bu sınıfa yeni çalışan eklemek için bir metod yapın.

Задание 3

Bu sınıfa tüm çalışanları yazdıracak bir metod yapın.

Задание 4

Bu sınıfa tüm çalışanların toplam maaşını hesaplayacak bir metod yapın.

Задание 5

Bu sınıfa tüm çalışanların ortalama maaşını hesaplayacak bir metod yapın.