Ejemplos
PHP Manual

Algunos ejemplos sencillos sobre el uso de la función overload():

Example #1 Sobrecargar una clase de PHP

<?php

class OO {
   var 
$a 111;
   var 
$elem = array('b' => 9'c' => 42);

   
// Método de llamada de retorno para obtener una propiedad
   
function __get($nombre_prop, &$valor_prop
   {
       if (isset(
$this->elem[$nombre_prop])) {
           
$valor_prop $this->elem[$nombre_prop];
           return 
true;
       } else {
           return 
false;
       }
   }

   
// Método de llamada de retorno para establecer una propiedad
   
function __set($nombre_prop$valor_prop
   {
       
$this->elem[$nombre_prop] = $valor_prop;
       return 
true;
   }
}

// Aquí sobrecargamos el objeto OO
overload('OO');

$o = new OO;
echo 
"\$o->a: $o->a\n"// imprime: $o->a: 111
echo "\$o->b: $o->b\n"// imprime: $o->b: 9
echo "\$o->c: $o->c\n"// imprime: $o->c: 42
echo "\$o->d: $o->d\n"// imprime: $o->d:

// añadir un nuevo elemento a la matriz $elem de OO
$o->56

// instanciar stdclass (está incluido en PHP 4)
// ¡$val no está sobrecargada!
$val = new stdclass;
$val->prop 555;

// Establecer "a" para que sea una matriz con el objeto $val en él
// Pero __set() pondrá esto en la matriz $elem
$o->= array($val);
var_dump($o->a[0]->prop);

?>


Ejemplos
PHP Manual