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
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
class UsersCollection {
}
?>
Foydalanuvchi ob'ektlarini maxsus xususiyatda massiv ko'rinishida saplaymiz:
<?php
class UsersCollection {
private $users;
public function __construct() {
$this->users = [];
}
}
?>
Keling, massivga yangi foydalanuvchi qo'shish uchun metod yarataylik:
<?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
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
$uc = new UsersCollection();
?>
Endi to'plamimizga bir nechta foydalanuvchi qo'shamiz:
<?php
$uc->add(new User('john'));
$uc->add(new User('eric'));
$uc->add(new User('kyle'));
?>
Endi barcha foydalanuvchilarning ismlarini chiqaradigan metodni chaqiramiz:
<?php
$uc->show();
?>
EmployeesCollection klassini yarating,
u xodimlar massivini o'z ichiga oladi.
Ushbu klassda yangi xodim qo'shish uchun metod yarating.
Ushbu klassda barcha xodimlarni chiqarish uchun metod yarating.
Ushbu klassda barcha xodimlarning umumiy maoshini hisoblash uchun metod yarating.
Ushbu klassda barcha xodimlarning o'rtacha maoshini hisoblash uchun metod yarating.