Örnekler
PHP Manual

Bir PHP sınıfının aşırı yüklenmesi

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->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->= array($val);
var_dump($o->a[0]->prop);

?>


Örnekler
PHP Manual