{ $vysledek = $this->b + $this->privatniFunkce(); //k metodám i proměnným přistupujeme přes -> //v rámci dané instance využíváme klíčové slovo $this //u properties (proměnných) nepíšeme $ ! $this->neco = 'nevim'; //PHP se vyrovná i s dynamickým definováním properties, jsou pak nadefinovány jako public echo $vysledek; } /** * @return int */ public static function statickaFunkce() { self::$f++; //ke statickým proměnným, konstantám a metodám přistupujeme přes operátor :: (dvě dvojtečky), u proměnných je uveden $ return self::KONSTANTA + self::$f; //uvnitř třídy používáme místo jména třídy klíčové slovo self } } echo MojeTrida::statickaFunkce(); //zavolání statické funkce echo MojeTrida::KONSTANTA; //ke konstantám a statickým public proměnným jde přistupovat i mimo třídu echo MojeTrida::$d; $objekt = new MojeTrida(); //vytvoření nového objektu (pro vytvoření se používá konstruktor) $objekt->a = 0; //přístup k public proměnné $objekt->vypis(); //přístup k metodě daného objektu
*/ public function getX() { return $this->x; } /** * @return int */ public function getRandomNumber() { return rand(1, 10); } } /** * Class MojeTrida - ukázka třídy s traitem */ class MojeTrida { use MujTrait; //pomocí klíčového slova use můžeme načíst příslušný trait public function echoX() { echo $this->x; //proměnná $x byla sice definovaná v traitu jako private, ale je tu normálně dostupná (obsah traitu je "nakopírován" do této třídy) } } $objekt = new MojeTrida(); $objekt->echoX(); echo PHP_EOL; //konstanta obsahující znak pro ukončení řádky (ve výchozím stavu \n) echo $objekt->getRandomNumber();
{ echo 'vypis 2' . PHP_EOL; } } trait Trait3 { protected function hello() { echo 'hello' . PHP_EOL; } } class MojeTrida { use Trait1, Trait2 { //načítáme najednou více traitů, přičemž chceme vyřešit konfliktní obsah Trait1::test insteadof Trait2; //bude použita metoda test() z Trait1, příslušná metoda z Trait2 bude ignorována Trait1::vypis insteadof Trait2; Trait2::vypis as vypis2; } use Trait3 { hello as public; //změna přístupnosti příslušné metody hello as public hello2; } } $objekt = new MojeTrida(); $objekt->test(); $objekt->vypis2(); $objekt->hello(); $objekt->hello2();