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 здесь