Objektų manipulacija klasėse OOP PHP
Klasės metodų parametrais gali priimti kitų klasių objektus ir manipuliuoti šiais objektais. Pažiūrėkime pavyzdžiu. Tarkime, turime šią klasę:
<?php
class User {
private $name;
public function __construct($name) {
$this->name = $name;
}
public function getName() {
return $this->name;
}
}
?>
Tarkime, nusprendėme sukurti klasę, kuri manipuliuos vartotojų objektų rinkiniu:
<?php
class UsersCollection {
}
?>
Vartotojų objektus saugosime kaip masyvą privacioje savybėje:
<?php
class UsersCollection {
private $users;
public function __construct() {
$this->users = [];
}
}
?>
Sukurkime metodą naujo vartotojo pridėjimui į masyvą:
<?php
class UsersCollection {
private $users;
public function __construct() {
$this->users = [];
}
public function add($user) {
$this->users[] = $user;
}
}
?>
Dabar sukurkime metodą, kuris atspausdins visų vartotojų vardus:
<?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>';
}
}
}
?>
Pažiūrėkime, kaip veikia mūsų klasė. Pirmiausia sukurkime jos objektą:
<?php
$uc = new UsersCollection();
?>
Dabar į mūsų kolekciją pridėkime kelis vartotojus:
<?php
$uc->add(new User('john'));
$uc->add(new User('eric'));
$uc->add(new User('kyle'));
?>
Dabar iškvikime metodą, kuris atspausdins visų vartotojų vardus:
<?php
$uc->show();
?>
Sukurkite klasę EmployeesCollection,
kuri talpins darbuotojų masyvą.
Šioje klasėje sukurkite metodą naujo darbuotojo pridėjimui.
Šioje klasėje sukurkite metodą visų darbuotojų atvaizdavimui.
Šioje klasėje sukurkite metodą visų darbuotojų bendro atlyginimo apskaičiavimui.
Šioje klasėje sukurkite metodą visų darbuotojų vidutinio atlyginimo apskaičiavimui.