Դասարաններում օբյեկտների մանիպուլյացիան OOP-ում PHP-ում

Դասերի մեթոդները կարող են ընդունել այլ դասերի օբյեկտներ որպես պարամետրեր և մանիպուլյացիայի ենթարկել այդ օբյեկտները: Եկեք նայենք մի օրինակի: Ենթադրենք, մենք ունենք հետևյալ դասը.

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

Ենթադրենք, մենք որոշել ենք ստեղծել մի դաս, որը կմանիպուլյացիայի ենթարկի օգտատերերի օբյեկտների հավաքածու.

php<?php
  class UsersCollection {
    
  }
?>

Օգտատերերի օբյեկտները կպահենք որպես զանգված՝ փակ հատկության մեջ.

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

Ստեղծենք մեթոդ նոր օգտատեր ավելացնելու համար զանգվածի մեջ.

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

Հիմա ստեղծենք մեթոդ, որը կարտածի բոլոր օգտատերերի անունները.

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

Եկեք նայենք մեր դասի աշխատանքին: Սկզբում ստեղծենք դրա օբյեկտը.

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

Հիմա ավելացնենք մեր հավաքածուի մեջ մի քանի օգտատեր.

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

Հիմա կանչենք մեթոդը, որը կարտածի բոլոր օգտատերերի անունները.

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

Ստեղծեք EmployeesCollection դասը, որը կպարունակի աշխատակիցների զանգված:

Задание 2

Այս դասում ստեղծեք մեթոդ նոր աշխատակից ավելացնելու համար:

Задание 3

Այս դասում ստեղծեք մեթոդ բոլոր աշխատակիցներին արտածելու համար:

Задание 4

Այս դասում ստեղծեք մեթոդ բոլոր աշխատակիցների ընդհանուր աշխատավարձը հաշվարկելու համար:

Задание 5

Այս դասում ստեղծեք մեթոդ բոլոր աշխատակիցների միջին աշխատավարձը հաշվարկելու համար: