Всем привет!
Изучаю PHP дошел до ООП, где авто видеокурсов
рассматривает магические методы __get() и __set()
Проблема возникла именно с методом __get(), а именно дело в том, что он не исполняется.
Автор утверждает, что если мы обратимся к несуществующему свойству в php, то свойство будет создано автоматически и при обращении к нему будет выведено.
class SomeClass{
}
$obj = new SomeClass();
$obj->param = 4;
echo $obj->param; // должно быть выведено 4
Я ввожу вышеуказанный код у автора отображается четвёрка, у меня нет.
Я проверил все несколько раз, ошибиться здесь сложно, т.к. в коде буквально несколько строк.
Далее автор утверждает, что при переопределении магических методов __get(), __set(), можно работать с несуществующими свойствами класса.
Автор показывает это на примере следующего кода:
class MyClass {
function __set($n, $v){
echo $n, ":", $v;
}
function __get($n){
echo $n;
}
}
$odj = new MyClass();
$odj->param = 100;
echo $obj->param;
У автора выводится значение "param:100param", у меня же в аналогичной ситуации выводит просто "param:100".
Т.е. получается ситуация, когда по каким-то причинам метод __get() не исполняется.
Тут я понимаю, что возможно дело в настройках моего локального сервера, на котором я обучаюсь, но после его переустановки все равно ничего не получается.
Версия php - 5.5
Подскажите что делать?