Объектҳоро дар синфҳои ООП дар 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-ро созед,
ки массивҳои кормандонро дар бар гирад.
Дар ин синф усули методро барои илова кардани корманди нав созед.
Дар ин синф усули методро барои чоп кардани ҳамаи кормандон созед.
Дар ин синф усули методро барои ҳисоб кардани маҳсули маоши ҳамаи кормандон созед.
Дар ин синф усули методро барои ҳисоб кардани миёнаи маоши ҳамаи кормандон созед.