PHP无法访问受保护的属性错误

时间:2011-06-10 13:36:17

标签: php

PHP致命错误:第23行无法访问/web/index.php中的受保护属性Exception :: $ message

在第23行,我有,

echo '<?xml version=\'1.0\'?><error-response status="error">
<message><![CDATA['.$e->message.']]></message>
</error-response>';

我看不出有什么问题,但我偶尔会在日志中看到上述异常。怎么了?

3 个答案:

答案 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