私の子クラスで親クラスのプロパティを変更しようとしていますが、私が期待している結果が得られません。 私はいくつかの研究(Change parent variable from child classのような)を行っていますが、問題を見つけることができません。子クラスを使用して親のプロパティを変更する方法
class A {
public $msg;
public function __construct() {
$this->msg = 'foo';
}
public function setMessage($string) {
$this->msg = $string;
}
public function getMessage() {
var_dump($this->msg); // For demo purposes
}
public function triggerB() {
$b = new B;
}
}
class B extends A {
public function __construct() {
parent::setMessage('bar');
}
}
$a = new A;
$a->getMessage();
$a->triggerB();
$a->getMessage();
「foo」が2回出力され、「foo」「bar」になると思います。
誰でも私が間違っていることを私に説明することができますか、これをどのように修正することができますか?
私の実際のコードでは、子クラスがいくつかの$ _POST値を検証し、その結果をMain-classに返すようにします。親は子を使用して検証します。
まず、コンストラクタを呼び出す場合は、paranthesisを使用します。 '新しいB()'第二に、あなたはインスタンスを作成している、彼らはお互いへの参照を持っていない。私はあなたがオブジェクト内で方向付けする目的ではない、_statically_を考えていると思います。 – dbf