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.








David Pšondr
Lis 2, 2013 v 12:30Od PHP 5.4 je možné použít i tuto konstrukci: (new Trida())->metoda();