Введение в 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.