





да.
<?php
abstract class foo
{
public function __get($var)
{
echo "Parent (Foo) __get() called for $var\n";
}
}
class bar extends foo
{
private $var;
public function __construct()
{
$this->var = "25\n";
}
public function getVar()
{
return $this->var;
}
}
$obj = new bar();
echo $obj->var;
echo $obj->getVar();
?>
выход:
$ php test.php
Родитель (Foo) __get () вызвал var
25
да. __get() и __set() (и __call(), если на то пошло) вызываются при доступе к элементу данных, который не виден для текущего выполнения.
В этом случае $var является частным, поэтому публичный доступ к нему вызовет ловушку __get().