我想構建一個子異常類(ovi_Exception
),並遇到__construct()問題。我希望也能夠訪問在子Exception類我的MySQL類,通常我這樣做是通過以下:擴展異常類中斷getMessage()
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來說,這是相當新的。
謝謝。
ahaha幾乎在同一時間! :D – tftd
@tftf是的,這往往是這種情況在stackoverflow ^^。 – antoox
酷,這工作和有意義,謝謝。不知道爲什麼我應該得到一個downvote ... – artparks