Введение в PHP5 - __set и __get
ОГЛАВЛЕНИЕ
__set и __get
Но это ещё не всё, теперь вы можете определить методы __set и __get для "отлова" всех попыток изменения или доступа к неопределённым (или недоступным) переменным.
Пример 9: __set и __get
<?php
class foo {
function __set($name,$val) {
print("Привет, вы попытались присвоить значение $val переменной $name");
}
function __get($name) {
print("Привет, вы пытались обратиться к $name");
}
}
$x = new foo();
$x->bar = 3;
print($x->winky_winky);
?>
В PHP5 вы сможете "сказать" методу, что он должен получить в качестве аргумента объект определённого типа.
Пример 10: указание типов
<?php
class foo {
// код ...
}
class bar {
public function process_a_foo(foo $foo) {
// Ещё какой-нибудь код
}
}
$b = new bar();
$f = new foo();
$b->process_a_foo($f);
?>
Как вы заметили, перед именем аргумента теперь можно поставить имя его класса, и таким образом PHP5 определит, что переменная $foo должна быть класса foo.