Velmi užitečnou funkcí je funkce __autoload(). Umožňuje takzvané automatické nahrávání tříd a je volána, jestliže chcete užít třídu, která ještě nebyla definována.

Voláním funkce __autoload() je enginem dána poslední šance k nahrání třídy před tím, než server oznámí chybu. Příklad:

<?php 
function __autoload($jmeno_tridy { 
  require_once $jmeno_tridy . '.php'; 
} 

$objekt = new Trida1(); 
$objekt2 = new Trida2(); 
?>

Skript bude hledat příslušné definice třídy v souborech Trida1.php a Trida2.php.

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

2 Příspěvků v diskuzi

  1. PHP obsahuje chybu, při které se __autoload() nevykoná – jedná se o případ, kdy zavoláte statickou metodu třídy, které ještě nebyla nalezena deklarace (v příkladu nahoře by byla umístěna v nějakém souboru). Namísto __autoload() se tak používá funkce spl_autoload_register().

Odpovědět