__autoload( /*String Classname*/ $myclass)
. Cette fonction est appelé lorsque l'on tente d'instancier ou de spécialiser une classe ou une interface non chargée.
exemple 1:
function __autoload($class_name) { require_once $class_name . '.php'; } $obj = new MaClasse1(); $obj2 = new MaClasse2();
exemple 2 :
function __autoload($name) { echo "Tentative de chargement de $name.\n"; throw new Exception("Impossible de charger $name."); } try { $obj = new NonLoadableClass(); } catch (Exception $e) { echo $e->getMessage(), "\n"; }
Un exemple parle mieux qu'un long discours :
<?php $instance = new SimpleClass(); $assigned = $instance; $reference =& $instance; $instance->var = '$assigned aura cette valeur'; $instance = null; // $instance et $reference deviennent null var_dump($instance); var_dump($reference); var_dump($assigned); ?>
L'exemple ci-dessus affiche :
NULL NULL object(SimpleClass)#1 (1) { ["var"]=> string(30) "$assigned aura cette valeur" }