OOP v PHP: Dereference objektů

15. února 2006

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.

Štítky: oop-php

Mohlo by vás také zajímat

Nejnovější

1 komentář

  1. David Pšondr

    Lis 2, 2013 v 12:30

    Od PHP 5.4 je možné použít i tuto konstrukci: (new Trida())->metoda();

    Odpovědět

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *