Страница 6 из 9 __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. |