gpt4 book ai didi

php - 在非静态方法+继承中访问静态变量

转载 作者:行者123 更新时间:2023-12-04 18:16:39 24 4
gpt4 key购买 nike

我有以下结构

class Foo
{
public static $a = "parent";

public static function Load()
{
return static::$a;
}

public function Update()
{
return self::$a;
}

}

class Bar extends Foo
{
private static $a = "child";
}

我希望更新函数也能够返回 $a,但我无法让它工作。
Bar::Load();  //returns child, Correct.
$bar = new Bar();
$bar->Update(); //returns parent, Wrong.

我试过 self::, static::和 get_class() 没有成功。

最佳答案

更改self::$aupdate()

class Foo
{
protected static $a = "parent"; // Notice this is now "protected"

public function child()
{
return static::$a;
}

public function parent()
{
return self::$a;
}
}

class Bar extends Foo
{
protected static $a = "child"; // Notice this is now "protected"
}

$bar = new Bar();
print $bar->child() . "\n";
print $bar->parent() . "\n";

关于php - 在非静态方法+继承中访问静态变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11546124/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com