Ответ 1
Используйте $e->getMessage()
вместо $e->message
, потому что сообщение является защищенным свойством:)
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
Вы можете больше копать в Видимость свойств здесь