これは私の最初の質問であり、私を困惑させたものです。これが単純なものなのか、見落としているのか、それとも不可能なのかはわかりません。
以下は、元のコードの非常に単純化されたバージョンです。最終的な目標は、出力を次のようにすることです。
1:
2: this is a test
3: this is another test
4: this is another test
ただし、コードを現在の状態にすると、実際の出力は次のようになります。
1:
2: this is a test
3: this is another test
4:
first_function() によって変更された後、オブジェクト 'B' が test_variable の値にアクセスできるようにしたいと考えています。
test_variable を static として宣言すると正常に動作しますが、実際のアプリケーションでは動作せず、parent::test_variable をエコーしようとすると「オブジェクト ID #17」などを出力します。
class A
{
public $test_variable;
function __construct()
{
echo '1: ' . $this->test_variable . "<br />";
$this->test_variable = 'this is a test';
echo '2: ' . $this->test_variable . "<br />";
}
function first_function()
{
$this->test_variable = 'This is another test';
echo '3: ' . $this->test_variable . "<br />";
$b = new b;
$b->second_function();
}
}
class B extends A
{
function __construct()
{
/* Dont call parent construct */
}
function second_function()
{
echo '4: ' . $this->test_variable;
}
}
$a = new A;
$a->first_function();
// Outputs:
// 1:
// 2: this is a test
// 3: this is another test
// 4:
// but I want it to output
// 1:
// 2: this is a test
// 3: this is another test
// 4: this is another test
ご回答ありがとうございます。とても感謝しています。
フィル