从 PHP 中的成员函数访问私有变量
我从 中派生了一个类,基本上是这样的:Exception
class MyException extends Exception {
private $_type;
public function type() {
return $this->_type; //line 74
}
public function __toString() {
include "sometemplate.php";
return "";
}
}
然后,我从这样推导出:MyException
class SpecialException extends MyException {
private $_type = "superspecial";
}
如果我从一个函数中,抓住它,然后去,那么该函数应该加载一个模板,显示该模板,然后实际上不返回任何内容来回显。throw new SpecialException("bla")
echo $e
__toString
这基本上就是模板文件中的内容
<div class="<?php echo $this->type(); ?>class">
<p> <?php echo $this->message; ?> </p>
</div>
在我看来,这绝对应该有效。但是,当抛出异常并尝试显示它时,我收到以下错误:
致命错误: 无法访问私有属性 SpecialException::$_type C:\path\to\exceptions.php第 74 行
谁能解释一下我为什么在这里打破规则?我是否在用这段代码做一些非常诙谐的事情?有没有一种更习惯用的方法来处理这种情况?该变量的要点是(如图所示),我希望根据捕获的异常类型使用不同的div类。$_type