9

var_dumpまたはを頻繁に実行するクラスがいくつかありprint_rます。

これらのクラス内には、他のかなり大きなオブジェクトへの参照であるいくつかの変数があり、それぞれのインスタンスが1つだけあり、クラス内でのみ使用されます(クラス外ではこれらのクラスへの独自の参照があります)これらのクラスは必要ありません出力に印刷されているので、正常に機能していると宣言しましprivate staticた。

しかし、私のIDE(PHPstorm)は、次の方法Member has private accessでアクセスすると、エラーレベルのアラートを表示します。self::$ci->...

これがIDEのバグであるかどうか疑問に思っています。おそらくバグであるため(静的ですが、クラス外ではアクセスできないので、なぜそれを実行したいのですか?)、または実際には構文的に間違っているためです。それと?

ここでの例はクラスの一部です。CodeIgniterスーパーオブジェクト=& get_instance();への参照を返すことに注意してください。

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;
}
4

1 に答える 1

4

あなたのproduct()方法では、プライベートメンバーにアクセスしようとしていますself::$ci。IDEは、このメソッドはどこからでもアクセスできると考え、プライベート静的メンバーとの競合を検出します$ci

于 2012-11-29T21:30:42.990 に答える