我一直在研究PHP中是否存在类似于静态初始值设定项的东西。
下面是一个静态方法作为 Java 示例:
public class Foo {
static { //This is what I mean (Does this exist in other languages like PHP?
//THIS IN PHP
}
}
我找到了它的名字(静态初始值设定项)。它在第一次加载类时使用。似乎 PHP 中没有静态初始值设定项。
我不认为PHP提供了任何直接的方法来初始化类,就像在Java或C#中所做的那样。如果你想初始化静态类成员,你可以在构造函数中完成,如下所示:
class MyClass {
private static $staticValue;
public function __construct() {
if (self::$staticValue === null){
self::$staticValue = 'Nice';
}
}
}
但是,如果您从未实例化您的类,则上述方法将不起作用。这意味着不幸的是,访问静态类成员不会触发__construct
的代码,而且我认为 PHP 中没有任何解决此问题的方法。
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();