PHP Portal » PHP Handbuch »

Werbung


Einige einfache Beispiele für die Verwendung der overload()-Funktion:

PHP Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
class OO { var $a = 111; var $elem = array('b' => 9, 'c' => 42); // Callback-Methode für die Abfrage einer Eigenschaft function __get($prop_name, &$prop_value) { if (isset($this->elem[$prop_name])) { $prop_value = $this->elem[$prop_name]; return true; } else { return false; } } // Callback-Methode für das Setzen einer Eigenschaft function __set($prop_name, $prop_value) { $this->elem[$prop_name] = $prop_value; return true; } } // Hier überladen wir das OO-Objekt 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: // füge einen neuen Eintrag zum $elem-Array in OO hinzu $o->x = 56; // instanziiere stdclass (ist in PHP 4 eingebaut) // $val ist nicht überladen! $val = new stdclass; $val->prop = 555; // setze "a" als Array mit dem $val-Objekt als Value // __set() wird dies aber trotzdem dem $elem-Array zuordnen $o->a = array($val); var_dump($o->a[0]->prop);