クラスBで関数replaceを呼び出して、クラスAの変数を置き換えたいです。たとえば、以下のコードでは、「hello」を「hi」に置き換えたいのですが、出力は「hi」です
。PS:クラスBはコントローラーであり、クラスAのインスタンスを取得する必要があります。 。
私はphp5.2.9+を使用しています
<?php
$a = new A();
class A {
protected $myvar;
function __construct() {
$this->myvar = "hi";
$B = new B();
echo $this->myvar; // expected value = 'hello', output = 'hi'
}
function replace($search, $replace) {
$this->myvar = str_replace($search, $replace, $this->myvar);
}
}
class B extends A {
function __construct() {
parent::replace('hi', 'hello');
}
}
?>