Я немного растерялся, когда вызывается магический метод __get.
Вот небольшой пример
class Test {public function __get($name) {
echo $name;
}
}
$a = new Test;
echo 'a '.$a->b.' c';
Он выдает «ba c», хотя я ожидал получить «a b c»
ну, потому что ты звонишь другому echo
до того, как позвонили кейли.
class Test {public function __get($name) {
return $name;
}
}
$a = new Test;
echo 'a '.$a->b.' c';
Помните, порядок исполнения. Оператор выполняется, когда все вызовы функций внутри этой функции выполнены. В вашем коде echo 'a '.$a->b.' c';
исполняется только после $a->b
выполняется в исходном коде $a->b
является эхо-вместо этого вводится имя свойства возврате это его кале.
Других решений пока нет …