Fatal error: Cannot access protected property (фатальная ошибка: не удается получить доступ к защищенному свойству)
Fatal error: Cannot access protected property (фатальная ошибка: не удается получить доступ к защищенному свойству)
Данную ошибку, например, можно встретить в фреймворке codeigniter 3 при обращении к свойству $e->message для вывода сообщения ошибки на экран.
Баг заключается в том, что область видимости свойства объекта к которому мы обращаемся защищена (protected $message;). Вариантов решения несколько:
Самый правильный способ — поискать в классе объекта, к которому мы обращаемся, метод, возвращающий это свойство, и использовать его. Он может выглядеть вида:
public function getMessage() {
return $this->message;
}
Если данного метода не нашли, можно его добавить в объект.
В крайнем случае можно изменить область видимости объекта с protected на public.