这是我的第一个问题,也让我很困惑。我不确定这是否是简单的事情,我忽略了它还是不可能的事情。
下面是我原始代码的一个非常简化的版本。最终目标是输出如下:
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:
我希望对象'B'能够在 first_function() 改变它之后访问 test_variable 的值。
当我将 test_variable 声明为静态时它工作正常,但是在实际应用程序中它不起作用,当我尝试回显 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
非常感谢您的任何回复。我非常感谢他们。
菲尔