PHP致命错误:无法在第23行的/web/index.php中访问受保护的属性Exception :: $ message
我在第23行,
echo '<?xml version=\'1.0\'?><error-response status="error">
<message><![CDATA['.$e->message.']]></message>
</error-response>';
Run Code Online (Sandbox Code Playgroud)
我看不出有什么问题,但我偶尔会在日志中看到上述异常.怎么了?
mea*_*gar 16
$message是错误消息所声明的类Exception 的受保护成员.你想要公共访问器getMessage:
$e->getMessage()
Run Code Online (Sandbox Code Playgroud)
声明为 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
Run Code Online (Sandbox Code Playgroud)
您可以在此处深入了解财产可见性