2012-11-29 29 views
9

Genellikle var_dump veya print_r aracılığıyla çalıştırılan birkaç sınıfa sahibim.php sınıfında özel statik değişkenler

Bu sınıfların içinde, yalnızca her birinin bir örneğine sahip olan ve yalnızca sınıfların içinde kullanılan sınıfların dışındaki, oldukça büyük nesnelere yapılan bazı değişkenler var (sınıfların dışında bu sınıflara kendi referansları var) Bu sınıflar çıktıda basılmasını istemiyorlar, bu yüzden onları iyi çalışan private static olarak beyan ettim.

Ama bu IDE bir hata olup olmadığını merak ediyorum self::$ci->...

üzerinden erişebilecek benim IDE (PhpStorm) muhtemelen aka bir hata (çünkü vurgulayarak, Member has private access ile ilgili bir hata düzeyinde uyarısı yukarı sürükleyerek edilir Statik değil ama sınıfın dışında hiçbir şey ona erişemez, neden bunu yapmak istersiniz?), ya da aslında sözdiziminde yanlış bir şey olduğu için mi? Örnek olarak

burada sınıfın bir parçası, Not =& get_instance(); Eğer özel üye self::$ci erişmeye çalışıyorsanız sizin product() yöntemde 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; 
} 
+0

Daha özgül bir kod görmem gerek (her ne kadar "self :: $ ci->" yeterli resim çizse de), ama sanırım PHPStorm'un garip bir davranışı. –

+0

@MichaelBerkowski eklenen kod boyasını daha iyi bir görüntü yapıyor mu? – Hailwood

+0

Belki de bu şekilde davranıyor çünkü "self" statik olmayan bir yöntemle mi çalışıyorsunuz? –

cevap

4

bir başvuru döndüren. IDE'niz bu yönteme her yerden erişilebileceğini düşünüyor ve özel statik üye $ci ile bir çakışma algılıyor.

İlgili konular