Задать вопрос
@Pro_Code

Часть кода из паттерна — компоновщик. Имеем — абстрактный класс, и класс — наследник. Собственно, как такое происходит?

Абстрактный класс:
abstract class SomeAbstract
{
     protected $var = 'variable data';
}


Наследник:
class InheritedСlass extends SomeAbstract
{
     public function someAction(SomeAbstract $someAbstract)
     {
          dump($someAbstract->var); // вот здесь не понятно, как protected var превратилась в public
     }
}
  • Вопрос задан
  • 471 просмотр
Подписаться 1 Простой 18 комментариев
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 1
https://www.php.net/manual/ru/language.oop5.visibi...

Видимость из других объектов:
Объектам одного и того же типа доступны защищённые и закрытые члены класса друг друга, даже если это разные экземпляры. Это связано с тем, что внутри таких объектов уже известны конкретные детали реализации.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽