在 PHP 中初始化静态成员
class Person {
public static function ShowQualification() {
}
}
class School {
public static $Headmaster = new Person(); // NetBeans complains about this line
}
为什么这是不可能的?
我希望能够像
School::Headmaster::ShowQualification();
..那样使用它,而无需实例化任何类。我该怎么做呢?
更新:好吧,我明白了为什么部分。有人可以解释一下如何部分吗?谢谢 :)
class Person {
public static function ShowQualification() {
}
}
class School {
public static $Headmaster = new Person(); // NetBeans complains about this line
}
Why is this not possible?
I want to be able to use this like
School::Headmaster::ShowQualification();
..without instantiating any class. How can I do it?
Update: Okay I understood the WHY part. Can someone explain the HOW part? Thanks :)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
来自文档,
new Person()
不是文字或常量,因此这不起作用。您可以使用解决方法:
From the docs,
new Person()
is not a literal or a constant, so this won't work.You can use a work-around:
new Person()
是一个操作,而不是一个值。http://php.net/static
您可以将 School 类初始化为一个对象:
new Person()
is an operation, not a value.http://php.net/static
You can initialise the School class to an object: