Uvnitř třídy je možné definovat objektovou konstantu. Odlišnost od vlastnosti třídy spočívá v tom, že se hodnota konstanty nikdy nemění, neuvádí se znakem $ a neváže se k instanci, ale k příslušné třídě.

Objektové konstanty se uvádějí klíčovám slovem const. Pro spojení s konstantou použijeme fráze self::, respektive parent::.

Příklad demonstruje vytvoření konstanty konstanta a způsob jejího vypsání v třídě.

<?php 
class Trida{ 
  const konstanta = 'Hodnota konstanty'; 
  public function VypisKonstantu(){ 
    echo self::konstanta; 
  } 
} 
//1 
echo Trida::konstanta; 
//2 
$class = new Trida(); 
$class->VypisKonstantu(); 

class NovaTrida extends trida{ 
  public function VypisOpet(){ 
  echo parent::konstanta; 
  } 
} 
//3 
echo NovaTrida::konstanta; 
//4 
$class = new NovaTrida(); 
$class->VypisKonstantu(); 
//5 
$class->VypisOpet(); 
?>

První poznámka (//1) ukazuje způsob vypsání hodnoty konstanty mimo třídu. Není možné použít syntaxi $class->konstanta, příklad by skončil chybou. Druhá poznámka ukazuje volání metody VypisKonstantu(), která rovněž konstantu vypíše. Třetí poznámka ukazuje vypsání konstanty, kterou zdědila třída NovaTrida. Čtvrtá poznámka volá zděděnou metodu a poslední, pátá poznámka, ukazuje výpis nové metody, která obsahuje zděděnou konstantu.

Pozn. red.: Zdůrazňujeme, že tento text se týká PHP 5.

Žádný příspěvek v diskuzi

Odpovědět