PHP da OOP da Klasslardagi Ob'ektlar bilan Ishlash

Klass metodlari boshqa klasslarning ob'ektlarini parametr sifatida qabul qilishi va bu ob'ektlar bilan ishlashi mumkin. Keling, buni misolda ko'ramiz. Quyidagi klassimiz bor deb faraz qilaylik:

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

Faraz qilaylik, foydalanuvchi ob'ektlari to'plami bilan ishlaydigan klass yaratmoqchimiz:

php<?php
  class UsersCollection {
    
  }
?>

Foydalanuvchi ob'ektlarini maxsus xususiyatda massiv ko'rinishida saplaymiz:

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

Keling, massivga yangi foydalanuvchi qo'shish uchun metod yarataylik:

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

Endi barcha foydalanuvchilarning ismlarini chiqaradigan metod yarataylik:

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

Keling, klassimizning ishlashini ko'rib chiqaylik. Avval uning ob'ektini yaratamiz:

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

Endi to'plamimizga bir nechta foydalanuvchi qo'shamiz:

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

Endi barcha foydalanuvchilarning ismlarini chiqaradigan metodni chaqiramiz:

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

EmployeesCollection klassini yarating, u xodimlar massivini o'z ichiga oladi.

Задание 2

Ushbu klassda yangi xodim qo'shish uchun metod yarating.

Задание 3

Ushbu klassda barcha xodimlarni chiqarish uchun metod yarating.

Задание 4

Ushbu klassda barcha xodimlarning umumiy maoshini hisoblash uchun metod yarating.

Задание 5

Ushbu klassda barcha xodimlarning o'rtacha maoshini hisoblash uchun metod yarating.