如何在PHP中初始化抽象类中的静态方法?

如何在PHP中初始化抽象类中的静态方法?,php,methods,static,abstract,Php,Methods,Static,Abstract,Foo.php Foo2.php abstract class Foo{ protected static $Bar; public __construct(){ Foo::$Bar = "foobar"; } } 终点 //require_once Foo.php class Foo2 extends Foo{ public static function Func(){ echo Foo::$Bar; } } 然后页

Foo.php

Foo2.php

abstract class Foo{
    protected static $Bar;
    public __construct(){
        Foo::$Bar = "foobar";
    }
}
终点

//require_once Foo.php
class Foo2 extends Foo{
    public static function Func(){
        echo Foo::$Bar;
    }
}
然后页面上什么也没有显示。它应该写“foobar”。 我做错了什么

如果我写

//require_once Foo2.php
Foo2::Func();
该代码适用于80%的情况。但有一个问题:

protected static $Bar = "foobar";

分析错误:语法错误,意外的'new'(T_new)

受保护的静态$Bar='foobar'它几乎以100%的速度工作。泰。但出现了一个新问题。我将编辑该问题,以便您可以看到新问题。问题是没有为类运行“自动”例程来初始化“静态”数据。创建实例时,会自动运行“构造函数”。对于任何“静态”的事物,情况并非如此。但是,您可以“使用自己的”技术,并使其成为应用程序的标准。这可能有帮助:。还有其他各种技巧。@RyanVincent这就是答案,最好把它作为答案而不是评论。你能这样做吗?依我看,这是一个复制品:。谢谢你的通知。如果你有任何问题,我很乐意澄清。
protected static $Bar = new AnotherClass();