我看不出这段代码有什么问题,但是我偶尔会在日志中看到上述异常。这是怎么回事?
PHP致命错误:无法访问受保护的属性Exception::$message,位于/web/index.php的第23行
在第23行我有以下代码:
echo '<?xml version=\'1.0\'?><error-response status="error">
<message><![CDATA['.$e->message.']]></message>
</error-response>';
我看不出这段代码有什么问题,但是我偶尔会在日志中看到上述异常。这是怎么回事?
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是一个受保护的属性 :)
被声明为protected的成员只能被类自身以及继承和父类访问。
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
您可以在这里深入了解 属性可见性相关的内容。
$this->user->getUsergroup()
。getter-setter原则——我开始理解了。 - Mateng$e->getMessage()
导致在我的 try catch 块中调用未定义的函数的错误 :/ - Douglas Gaskell