overload(PHP 4 >= 4.2.0) overload - включает возможность перегрузки/overloading свойств и методов класса. Описаниеvoid overload ([string class_name]) Функция overload() включает возможность перегрузки свойств и методов класса class_name. См. пример во вводном разделе этой части. |
||||||||||
|
||||||||||
Последний пример. Попытайтесь в нём разобраться.
class A { function A($i) { $this->value = $i; // попытайтесь понять, почему ссылка нам здесь не нужна $this->b = new B($this); } function createRef() { $this->c = new B($this); } function echoValue() { echo "<br>","class ",get_class($this),': ',$this->value; } } class B { function B(&$a) { $this->a = &$a; } function echoValue() { echo "<br>","class ",get_class($this),': ',$this->a->value; } } // попытайтесь понять, почему использование простой копии здесь даст // нежелательный результат в строке *-marked $a =& new A(10); $a->createRef(); $a->echoValue(); $a->b->echoValue(); $a->c->echoValue(); $a->value = 11; $a->echoValue(); $a->b->echoValue(); // * $a->c->echoValue(); /* output: class A: 10 class B: 10 class B: 10 class A: 11 class B: 11 class B: 11 */
| |