0

私は何年もの間これに座っていて、私を満足させる方法を見つけることができません.

私の問題: 親クラスとさまざまなサブクラスがあります。親のコンストラクターでは、新しいオブジェクトが作成されます (とりわけ)。このオブジェクトは、私のログ ファイル クラスからのものです。保護された変数に格納されます。

親クラスでは、ログの保持は問題ではなく、すべて計画どおりに行われます。

オブジェクトをサブクラスで使用したい場合、それを機能させることができません。私はそれにアクセスできません。オブジェクトを返すために親クラスで関数を試しましたが、これも機能しませんでした。

私はここで途方に暮れています。

これは親のコンストラクタです:

function __construct() {
...   
 $this->reg_log_file = new log_file(bef_registration::REG_LOG_NAME, bef_registration::REG_LOG_KEEPING);
...
}

親クラスで新しいエントリを作成するには、次のようにすれば十分です。

$this->reg_log_file->entry('start log');

子クラスでは、これによりエラーが発生します。

非オブジェクトでメンバー関数 entry() を呼び出す

グーグルで何時間も読んだ後、私はまだこれを行う適切な方法を思い付いていません.

アイデアのある人はいますか?

4

1 に答える 1

1

parent::__construct();すべての子コンストラクターの本体で実行する必要があり、ログ オブジェクトはインスタンス化され、継承されたすべてのサブクラスで表示されます。

于 2013-04-14T15:50:15.800 に答える