Intereting Posts
Существует ли внедряемый (не теоретический) способ доказать, принадлежит ли адрес электронной почты реальной учетной записи электронной почты? вставить XML-данные в mysql с помощью simpleXML Идентификация пользователя Yii2 после перенаправления страницы Как передать переменные на странице PHP на другую страницу без использования формы? Magento – вытащите один клиентский обзор Любой эквивалент для mcrypt (в PHP) для использования в Java? Запятые отдельные значения с одинаковым количеством строк Ссылки PHPStorm и модуля Получение данных с помощью jQuery AJAX без перезагрузки страницы в php Проблемы с PHP 5.3 и папками сеансов Переменная PHP в функции заголовка PhpStorm: Как добавить заглушки методов из библиотеки PECL, которую PhpStorm в настоящее время не поддерживает? PHP: isset для буфера? PHP sleep () вызывает высокую загрузку процессора RewriteRule – html broken – Как отсутствует css

PHP не может получить доступ к защищенной ошибке свойства

PHP Неустранимая ошибка: не удается получить доступ к защищенному свойству Exception :: $ message в /web/index.php в строке 23

В строке 23 я,

echo '<?xml version=\'1.0\'?><error-response status="error"> <message><![CDATA['.$e->message.']]></message> </error-response>'; 

Я не вижу ничего плохого в этом, но я вижу это исключение изредка в журналах. Что не так?

Используйте $e->getMessage() вместо $e->message потому что сообщение является защищенным свойством 🙂

$message является защищенным членом класса Exception, как указано в сообщении об ошибке. Вы хотите публичный доступ getMessage :

 $e->getMessage() 

Доступ к элементам, объявленным защищенными, может быть доступен только внутри самого класса и наследуемых и родительских классов.

 class MyClass { public $public = 'Public'; protected $protected = 'Protected'; private $private = 'Private'; function printHello() { echo $this->public; echo $this->protected; echo $this->private; } } $obj = new MyClass(); echo $obj->public; // Works echo $obj->protected; // Fatal Error echo $obj->private; // Fatal Error $obj->printHello(); // Shows Public, Protected and Private 

Вы можете больше копать в Property Visibility здесь