⊗ppOpAdCOM 22 of 107 menu

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ů.

Čeština
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Používáme soubory cookie pro fungování webu, analýzu a personalizaci. Zpracování údajů probíhá v souladu s Zásadami ochrany osobních údajů.
přijmout vše přizpůsobit odmítnout