私は子クラスで参照されるクラスの関数を呼び出す必要がある基本クラスを持っています。親クラスから子クラスの静的変数にアクセスしますか?
class base_class {
public function doSomethingWithReference(){
$this->reference->doSomething();
}
}
class extended_class extends base_class{
protected $reference;
public function __construct($ref){
$this->reference = $ref;
}
}
今これは$this->reference
ことを、明らかに
を正常に動作します。しかし、私は私が$this->reference
の値を気にしないデバッグ午前ときしかし、オブジェクト、十分に簡単巨大です!
私がprint_r($instanceOfExtendedClass)
を実行すると、そのオブジェクトからプリントが得られます。
base_class
を拡張するクラスごとに参照が異なります。
reference
は、extended_class
クラスの静的プロパティとして設定されました。
ただし、doSomethingWithReference
をself::$reference
に変更すると、未定義の変数エラーがスローされます。
逆に、静的変数をbase_class
に設定し、extended_class
から変更すると、そのクラスから拡張されたすべてのすべての変数が変更されるため、機能しません。
これを行う方法はありますか?$this->reference
からプリントアウトしないでください。
どのPHPバージョンを使用していますか? 5.3の静的な振る舞いにはいくつかの大きな変更がありました。http://php.net/language.oop5.late-static-bindingsを参照してください。非常に異なる答え。 – Charles
PHPバージョン5.3 – Hailwood
このクラス構造は何かに違反し、私はそれが何であるか分かりません:) –