OOP v PHP: Dereference objektů
Dereference je možnost odkazování na metodu či vlastnost, která obsahuje další objekty, z nich chceme použít nějakou vlastnost či metodu jiného objektu.
K odkazování se používá notace ->. Podívejte se na tento příklad:
<?php class TridaBudeVolana{ public function VypisHeslo(){ echo 'Vypiš heslo'; } } class TridaVola{ public function VolejTridu(){ return new TridaBudeVolana; } } $ins = new TridaVola; $ins->VolejTridu()->VypisHeslo(); ?>
Nejprve tedy vytváříme instanci, voláme třídu VolejTridu(), ta vytváří instanci třídy TridaBudeVolana, ze které následně chceme volat metodu VypisHeslo().
Takové zanořování je neomezené, tedy je možné volat i následující skript:
<?php class TridaBudeVolana{ public function VypisHeslo(){ echo 'Vypiš heslo'; } } class TridaVola{ public function VolejTridu(){ return new TridaZanorena; } } class TridaZanorena{ public function VolejTriduDalsi(){ return new TridaZanorenaJesteVice; } } class TridaZanorenaJesteVice{ public function VolejTriduJesteDalsi(){ return new TridaBudeVolana; } } $ins = new TridaVola; $ins->VolejTridu()->VolejTriduDalsi()-> VolejTriduJesteDalsi()->VypisHeslo(); ?>
Pozn. red.: Zdůrazňujeme, že tento text se týká PHP 5.
Mohlo by vás také zajímat
-
Monitory OLED: klíčové pojmy a funkce
13. května 2024 -
Jak si vyzkoušet Apple Intelligence v EU
2. srpna 2024 -
Znovuuvedení domény .AD
5. září 2024 -
AI a internetové podvody
29. října 2024
Nejnovější
-
Co je to TTL a proč na něm záleží?
25. března 2025 -
Kdo má nejrychlejší WordPress hosting v ČR?
18. března 2025 -
-
David Pšondr
Lis 2, 2013 v 12:30Od PHP 5.4 je možné použít i tuto konstrukci: (new Trida())->metoda();