我正在尝试构建一个子异常类 ( ovi_Exception
),并且遇到了 __construct() 的问题。我还希望能够在子 Exception 类中访问我的 MySQL 类,通常我通过以下方式执行此操作:
require_once( 'lib/Exception.php' );
$Process = new ovi_Exception( $MySQL );
$MySQL
作为 MySQL 类的一个实例。异常类将如下所示:
class ovi_Exception extends Exception {
private $MySQL = NULL;
public function __construct( $MySQL ) {
$this->MySQL = $MySQL;
}
这意味着我现在可以将 MySQL 类作为$this->MySQL->method()
. 但是我知道要保持 Exception 类正常工作,我需要修改__construct()
如下:
public function __construct( $MySQL ) {
$this->MySQL = $MySQL;
parent::__construct( $message, $code = 0 );
}
但是现在我收到未定义的变量通知,我无法再getMessage()
从异常中检索,这是我想要如何构建这个子类的关键。
parent::__construct( $message = NULL, $code = 0 );
删除通知,但我仍然没有从getMessage()
. 我真的不明白这个给父母__construct()
的电话在做什么。
如何保持对这个子 Exception 类中另一个类的访问并保持 Exception 类的行为正常?我在另一个内部访问其他类的方式是否存在根本缺陷?我以前从来没有遇到过这样做的问题,但是对于 OOP 来说还是很新的。
谢谢。