время
|
|
Глава 19. Классы 6
будут срабатывать только в том случае, если объект или наследуемый объект не содержат свойства или метода, к которому осуществляется доступ.
Перегрузка свойств
void __set ( string $имя, mixed $значение )
void __get ( mixed $имя )
С помощью этих методов обращения к свойствам класса могут быть перегружены с целью выполнения произвольного кода, описанного в классе. В аргументе имя передаётся имя свойства, к которому производится обращение. Аргумент значение метода __set() должен содержать значение, которое будет присвоено свойству класса с именем имя.
Пример 19.20. Пример перегрузки с использование __get и __set
<?php
class Setter {
public $n;
private $x = array("a" => 1, "b" => 2, "c" => 3);
function __get($nm) {
print "ЧИтаем [$nm]\n";
if (isset($this->x[$nm])) {
$r = $this->x[$nm];
print "Получили: $r\n";
return $r;
} else {
print "Ничего!\n";
}
}
function __set($nm,