Маніпуляцыя аб'ектамі ў класах у ААП у 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
,
які будзе ўтрымліваць масіў работнікаў.
Зрабіце ў гэтым класе метад для дадавання новага работніка.
Зрабіце ў гэтым класе метад для вываду ўсіх работнікаў.
Зрабійте ў гэтым класе метад для разліку сумарнай заробчнай платы ўсіх работнікаў.
Зрабіце ў гэтым класе метад для разліку сярэдняй заробчнай платы ўсіх работнікаў.