* Следующий скрипт позволяет познакомиться с псевдометодами,
* которые реализуют механизм перегрузки свойств и методов в классе.
// Перегрузка методов и свойств класса
class TestClass {
public $data = array();
public function __set($name,$key) {
$this->data[$name] = $key;
}
public function __get($name) {
if (isset($this->data[$name]))
return $this->data[$name];
return null;
}
public function __isset($name) {
return isset($this->data[$name]);
}
public function __unset($name) {
unset($this->data[$name]);
}
public function __call($name, $args) {
echo "Calling '$name'n";
$this->testCall($args);
}
private function testCall() {
echo "Number of args: ".func_num_args()."n";
}
public function __invoke($x) {
var_dump($x);
}
public function __toString() {
return __CLASS__;
}
} // class
$a = new TestClass;
$a->key = "value";
if (isset($a->key)) {
echo $a->key . "n";
}
$a->checkValue("key","value");
$a("test"); // __invoke()
PHP Справочник v0.05 © 2007-2024 Igor Salnikov aka SunDoctor