PHP致命错误:第23行无法访问/web/index.php中的受保护属性Exception :: $ message
在第23行,我有,
echo '<?xml version=\'1.0\'?><error-response status="error">
<message><![CDATA['.$e->message.']]></message>
</error-response>';
我看不出有什么问题,但我偶尔会在日志中看到上述异常。怎么了?
答案 0 :(得分:68)
使用$e->getMessage()
代替$e->message
,因为邮件是受保护的属性:)
答案 1 :(得分:16)
$message
是异常类的protected成员,正如错误消息所述。您需要公共访问者getMessage:
$e->getMessage()
答案 2 :(得分:4)
声明受保护的成员只能在类本身以及继承和父类中访问。
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
您可以深入了解属性可见性 here