Ubadilishaji wa Vitu katika Madarasa katika OOP kwa PHP

Madarasa yanaweza kukubali vitu vya madarasa mengine kama vigezo vya mbinu zao na kuyabadilisha hivi vitu. Hebu tuangalie kwa mfano. Tuchukulie tuna darasa lifuatalo:

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

Tuchukulie tumeamua kutengeneza darasa, ambalo litabadilisha msururu wa vitu vya watumiaji:

php<?php
  class UsersCollection {
    
  }
?>

Tutaweka vitu vya watumiaji kwa mfumo wa safu katika siri ya kibinafsi:

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

Tutengeneze mbinu ya kuongeza mtumiaji mpya kwenye safu:

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

Sasa tutengeneze mbinu ambayo itaonyesha majina ya watumiaji wote:

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

Hebu tuangalie utendakazi wa darasa letu. Kwanza tuunde kitu chake:

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

Sasa tuongeze kwenye mkusanyiko wetu watumiaji kadhaa:

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

Sasa tuite mbinu ambayo itaonyesha majina ya watumiaji wote:

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

Tengeneza darasa EmployeesCollection, ambalo litakuwa na safu ya wafanyikazi.

Задание 2

Tengeneza katika darasa hili mbinu ya kuongeza mfanyakazi mpya.

Задание 3

Tengeneza katika darasa hili mbinu ya kuonyesha wafanyikazi wote.

Задание 4

Tengeneza katika darasa hili mbinu ya kukokotoa jumla ya mishahara ya wafanyikazi wote.

Задание 5

Tengeneza katika darasa hili mbinu ya kukokotoa mishahara ya wastani ya wafanyikazi wote.