ობიექტების მანიპულირება კლასებში OOP-ში PHP-ში
კლასების მეთოდებს შეუძლიათ სხვა კლასების ობიექტები მიიღონ პარამეტრებად და ამ ობიექტებით მანიპულირება. მოდით შევხედოთ მაგალითს. დავუშვათ, გვაქვს შემდეგი კლასი:
<?php
class User {
private $name;
public function __construct($name) {
$this->name = $name;
}
public function getName() {
return $this->name;
}
}
?>
დავუშვათ, გადავწყვიტეთ კლასის შექმნა, რომელიც მანიპულირებას შეასრულებს მომხმარებლების ობიექტების სიმრავლით:
<?php
class UsersCollection {
}
?>
მომხმარებლების ობიექტები შევინახოთ მასივის სახით პრივატულ თვისებაში:
<?php
class UsersCollection {
private $users;
public function __construct() {
$this->users = [];
}
}
?>
შევქმნათ მეთოდი ახალი მომხმარებლის მასივში დასამატებლად:
<?php
class UsersCollection {
private $users;
public function __construct() {
$this->users = [];
}
public function add($user) {
$this->users[] = $user;
}
}
?>
ახლა შევქმნათ მეთოდი, რომელიც გამოიტანს ყველა მომხმარებლის სახელს:
<?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
$uc = new UsersCollection();
?>
ახლა დავამატოთ ჩვენ კოლექციაში რამდენიმე მომხმარებელი:
<?php
$uc->add(new User('john'));
$uc->add(new User('eric'));
$uc->add(new User('kyle'));
?>
ახლა კი გამოვიძახოთ მეთოდი, რომელიც გამოიტანს ყველა მომხმარებლის სახელს:
<?php
$uc->show();
?>
შექმენით კლასი EmployeesCollection,
რომელიც შეიცავს თანამშრომლების მასივს.
შექმენით ამ კლასში მეთოდი ახალი თანამშრომლის დასამატებლად.
შექმენით ამ კლასში მეთოდი ყველა თანამშრომლის გამოსახვისთვის.
შექმენით ამ კლასში მეთოდი ყველა თანამშრომლის მთლიანი ხელფასის გამოსათვლელად.
შექმენით ამ კლასში მეთოდი ყველა თანამშრომლის საშუალო ხელფასის გამოსათვლელად.