Видимість змінних у класі, PHPClub - клуб розробників PHP
Видимість змінних у класі
Є клас батьків "MyClass", є нащадок "MyClass2 extends MyClass". У конструкторі батьківського класу йде визначення змінної "$public", після цього йде виклик функції "a1()". У функції "a1()" відбувається приєднання файлу з класом нащадка. У конструкторі класу нащадка йде виклик функції "а2()". У функції "а2()" виводимо змінну "$public".
Проблема: при виведенні змінної з-під класу нащадка змінна не змінюватися. var_dump($obj) object(MyClass)#1 (1) < ["public"]=>string(1) "b" > var_dump($obj2) object(MyClass2)#2 (1) < ["public"]=>string(1) "a" >
Що я роблю не так?
Трудоголік
Laravel&PhpStorm
Духовність™
Просунутий новачок
Хоч і проблему вирішено, але все одно не зрозумів чому саме так.
Мануал: Ключове слово extends говорить про те, що створюваний клас є лише "розширенням" класу A, і не більше. Тобто B містить ті ж самі властивості і методи, що і A, але, крім них і ще деякі додаткові, "свої".
Як я розумію всі змінні теж повинні "йти" до класу нащадок? У класі батьки оголошуються змінні і з ними відбуваються якісь зміни, клас нащадок сідає в область батьківського класу, де йому доступні вже змінені значення змінних.