php类中的私有静态变量

时间:2012-11-29 21:05:30

标签: php codeigniter static private-members

我有一些课程经常通过var_dumpprint_r运行。

在这些类中,我有一些变量,它们是对其他大型对象的引用,每个对象只有一个实例,并且只在类中使用(类外面有自己对这些类的引用)我不知道希望这些类在输出中打印,所以我已将它们声明为private static,它正常工作。

但是当我通过Member has private access

访问它们时,我的IDE(PHPstorm)正在点击self::$ci->...的错误级别提醒

我想知道这是否是IDE中的一个错误,突出显示因为它可能是一个错误(又名它是静态的,但是类之外没有任何东西可以访问它,你为什么要这样做?),或者因为实际上存在错误它的语法错误吗?

这里的一个例子是班级的一部分, 请注意,=& get_instance();会返回对Code Igniter super object

的引用
private static $ci = null;

public function __construct(){
    self::$ci = self::$ci =& get_instance();
}

public function product() {
    if ($this->product == null) {
        self::$ci->products->around($this->relative_date);
        $this->product = self::$ci->products->get($this->product_id);
    }
    return $this->product;
}

1 个答案:

答案 0 :(得分:4)

product()方法中,您尝试访问私人成员self::$ci。您的IDE认为可以在任何地方访问此方法,并检测到与私有静态成员$ci的冲突。