overload() işlevini kullanan basit bir örnek:
Örnek 1 - Bir PHP sınıfının aşırı yüklenmesi
<?php
class OO {
var $a = 111;
var $elem = array('b' => 9, 'c' => 42);
// Bir özelliği döndürmek için geriçağırım yöntemi
function __get($prop_name, &$prop_value)
{
if (isset($this->elem[$prop_name])) {
$prop_value = $this->elem[$prop_name];
return true;
} else {
return false;
}
}
// Bir özelliği tanımlamak için geriçağırım yöntemi
function __set($prop_name, $prop_value)
{
$this->elem[$prop_name] = $prop_value;
return true;
}
}
// Nesneyi burada aşırı yüklüyoruz
overload('OO');
$o = new OO;
echo "\$o->a: $o->a\n"; // print: $o->a: 111
echo "\$o->b: $o->b\n"; // print: $o->b: 9
echo "\$o->c: $o->c\n"; // print: $o->c: 42
echo "\$o->d: $o->d\n"; // print: $o->d:
// $elem dizisine yeni bir öğe ekleyelim
$o->x = 56;
// stdclass'ı örnekleyelim (PHP 4'te yerleşiktir)
// $val aşırı yüklenmez!
$val = new stdclass;
$val->prop = 555;
// içinde $val nesnesi olar bir diziyi "a"'ya atayalım'
// Fakat __set() bunu $elem dizisine koyacak
$o->a = array($val);
var_dump($o->a[0]->prop);
?>