Jak Začít?

Máš v počítači zápisky z přednášek
nebo jiné materiály ze školy?

Nahraj je na studentino.cz a získej
4 Kč za každý materiál
a 50 Kč za registraci!




Jazyk PHP - pokračování

PDF
Stáhnout kompletní materiál zdarma (1.56 MB)

Níže je uveden pouze náhled materiálu. Kliknutím na tlačítko 'Stáhnout soubor' stáhnete kompletní formátovaný materiál ve formátu PDF.

programu

 Sada magických metod __

Sada magických metod _ get

ge , __set, __

, __set, _ isset

isse , 

,

__

_ unset

unse jsou v takovém případě zavolány a mohou 

jsou v takovém případě zavolány a mohou

situaci vyřešit.

situaci vyřešit

class GetSetClass {

// zde si budeme udrzovat vlastnosti tridy
private $hodnoty = array();

// tato vlastnost je definovana a pro pristup
// k ni nebude volana zadna magicka funkce
public $jmeno = "GestSetTrida";

// tato funkce bude zavolana v okamziku, kdy se pokusime
// nastavit vlastnost, ktera neni dostupna (neexistuje) 
public function __set($klic, $hodnota) {

// zapiseme klic=>hodnota do pole $values
$this->hodnoty[$klic] = $hodnota;

}

// tato funkce bude zavolana v okamziku, kdy se pokusime
// precist vlastnost, ktera neni dostupna (neexistuje)
public function __get($klic) {

// pokud klic zname, vratime hodnotu
if (array_key_exists($klic,$this->hodnoty)) {

return $this->hodnoty[$klic];

}

else {

// jinak vyvolame lehkou chybu
trigger_error("Pokus o přečtení nedefinované vlastnosti 

$klic",

E_USER_NOTICE);

return null;

}

}

// dotaz na existenci vlastnosti

public function __isset($klic) {

return isset($this->hodnoty[$klic]);

}

//zruseni vlastnosti
public function __unset($klic) {

unset($this->hodnoty[$klic]);

}

}

// otestovani funkcnosti
// fragment kodu

$gsc = new GetSetClass();

$gsc = new GetSetClass()

$gsc->adresa = "Karlovo nam.";

// pouzije se magicka metoda

$gsc->prijmeni = "Klima";

// pouzije se magicka metoda

$gsc->jmeno = "Martin";

// jmeno je klasicky dostupna vlastnost, bude primo 

nastavena

// zkusime se zeptat na nejakou vlastnost
echo ($gsc->adresa); // tato byla drive dynamicky nastavena, hodnota je Karlovo 
nam.// zkusime se zeptat na neco, co jeste nastaveno nebylo
echo ($gsc->PSC); // vyvola nami definovanou chybu.

Autoload

Autoloa

Jestliže nebude nalezena definice dané třídy, bude 

Jestliže nebude nalezena definice dané třídy, bude

Témata, do kterých materiál patří