返回NULL。但是,它会在构造内转储时返回预期值。
public static $time;
function __construct()
{
$time = $this->getTracker();
}
public function stream()
{
dd(static::$time);
}
答案 0 :(得分:3)
分配变量时,必须使用static::$time
:
function __construct()
{
static::$time = $this->getTracker();
}
否则,您将分配一个局部变量,而不是类属性。
通常,PHP从不允许您对类属性使用常规变量表示法。您始终必须使用class::$variable
表示静态属性,或$object->variable
表示每个对象的属性。
答案 1 :(得分:-1)
是一个类,class
关键字在帖子中被省略了,还是你真的忘记了?
class myObject {
public static $time;
function __construct()
{
self::$time = $this->getTracker();
}
public function stream()
{
dd(self::$time);
}
}
此外,对象上下文中对静态var或方法的引用为<objectname>::<varname>
或self::<varname>
。你做了什么,是在构造函数中创建一个局部var $ time。