如何在PHP中初始化抽象类中的静态方法?
Foo.php Foo2.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; } } 然后页
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();