子例外クラス ( ) を作成しようとして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()
。__construct()
ただし、例外クラスを通常どおりに機能させるには、次のように修正する必要があることを知っています。
public function __construct( $MySQL ) {
$this->MySQL = $MySQL;
parent::__construct( $message, $code = 0 );
}
getMessage()
しかし、未定義の変数通知が表示され、この子クラスをどのように構築するかの鍵となる例外から取得できなくなりました。
parent::__construct( $message = NULL, $code = 0 );
通知を削除しますが、 からはまだ何も得られませんgetMessage()
。この親への呼び出しが何をしているのかよくわかりません__construct()
。
この子例外クラス内の別のクラスへのアクセスを維持し、例外クラスを通常どおりに動作させるにはどうすればよいですか? 別のクラス内の他のクラスにアクセスする方法に根本的な欠陥がありますか? これまでにこれを行う際に問題が発生したことはありませんが、OOP にはかなり慣れていません。
ありがとう。