Manipulace s objekty v třídách v OOP v PHP
Třídy mohou jako parametry metod přijímat objekty jiných tříd a manipulovat s těmito objekty. Podívejme se na příklad. Předpokládejme, že máme následující třídu:
<?php
class User {
private $name;
public function __construct($name) {
$this->name = $name;
}
public function getName() {
return $this->name;
}
}
?>
Předpokládejme, že jsme se rozhodli vytvořit třídu, která bude manipulovat s množinou objektů uživatelů:
<?php
class UsersCollection {
}
?>
Budeme ukládat objekty uživatelů jako pole v privátní vlastnosti:
<?php
class UsersCollection {
private $users;
public function __construct() {
$this->users = [];
}
}
?>
Vytvořme metodu pro přidání nového uživatele do pole:
<?php
class UsersCollection {
private $users;
public function __construct() {
$this->users = [];
}
public function add($user) {
$this->users[] = $user;
}
}
?>
A nyní vytvořme metodu, která vypíše jména všech uživatelů:
<?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>';
}
}
}
?>
Podívejme se na fungování naší třídy. Nejprve vytvořme její objekt:
<?php
$uc = new UsersCollection();
?>
Nyní přidejme do naší kolekce několik uživatelů:
<?php
$uc->add(new User('john'));
$uc->add(new User('eric'));
$uc->add(new User('kyle'));
?>
A nyní zavolejme metodu, která vypíše jména všech uživatelů:
<?php
$uc->show();
?>
Vytvořte třídu EmployeesCollection,
která bude obsahovat pole zaměstnanců.
V této třídě vytvořte metodu pro přidání nového zaměstnance.
V této třídě vytvořte metodu pro výpis všech zaměstnanců.
V této třídě vytvořte metodu pro výpočet celkové mzdy všech zaměstnanců.
V této třídě vytvořte metodu pro výpočet průměrné mzdy všech zaměstnanců.