为什么我不能在PHP中的函数内访问我的私有变量?

时间:2014-08-23 07:59:57

标签: php

返回NULL。但是,它会在构造内转储时返回预期值。

public static $time;

        function __construct()
        {
            $time = $this->getTracker();
        }

        public function stream()
        {
        dd(static::$time);
        }

2 个答案:

答案 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。