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 классини яратинг,
у ишчилар массивини ўз ичига олади.
Ушбу классда янги ишчини қўшиш учун метод яратинг.
Ушбу классда барча ишчиларни чиқариш учун метод яратинг.
Ушбу классда барча ишчиларнинг жами маошини хисоблаш учун метод яратинг.
Ушбу классда барча ишчиларнинг ўртача маошини хисоблаш учун метод яратинг.