我一直在寻找PHP中是否存在类似静态初始化器的东西。
这是一个静态方法,作为Java示例:
public class Foo {
static { //This is what I mean (Does this exist in other languages like PHP?
//THIS IN PHP
}
}
我找到了它的名字(静态初始化程序)。它是第一次使用它加载的Class。看起来好像不是PHP中的静态初始化器。
答案 0 :(得分:2)
我不认为PHP提供了任何直接的方法来初始化类,就像在Java或C#中完成的那样。如果要初始化静态类成员,可以在构造函数中执行此操作,如下所示:
class MyClass {
private static $staticValue;
public function __construct() {
if (self::$staticValue === null){
self::$staticValue = 'Nice';
}
}
}
但是,如果您从未实例化过您的课程,则上述方法将无效。这意味着不幸的是,访问静态类成员不会触发__construct
中的代码,我认为PHP中没有针对此问题的解决方法。
答案 1 :(得分:1)
PHP中的静态属性和方法
class SomeClass {
private static $property = 'Foo';
public static function getProperty() {
return self::$property;
}
}
SomeClass::getProperty();
非静态属性和方法
class SomeClass {
private $property = 'Foo';
public function getProperty() {
return $this->property;
}
}
$class = new SomeClass();
$class->getProperty();