2012-11-29 9 views
9

में निजी स्थैतिक चर मेरे पास कुछ कक्षाएं हैं जो अक्सर var_dump या print_r के माध्यम से चलती हैं।PHP वर्ग

इन कक्षाओं के अंदर मेरे पास कुछ चर हैं जो अन्य संदर्भ हैं, बल्कि बड़ी वस्तुओं के संदर्भ में हैं जिनमें केवल प्रत्येक का एक उदाहरण होता है और केवल कक्षाओं के अंदर उपयोग किया जाता है (कक्षाओं के बाहर इन कक्षाओं का अपना संदर्भ होता है) मैं करता हूं इन वर्गों को आउटपुट में मुद्रित नहीं करना चाहते हैं, इसलिए मैंने उन्हें private static के रूप में घोषित किया है जो ठीक काम कर रहा है।

लेकिन जब मैं उन्हें self::$ci->...

के माध्यम से पहुँच अगर यह आईडीई में एक बग है मैं सोच रहा हूँ मेरी आईडीई (PHPstorm) Member has private access के साथ एक त्रुटि स्तर के अलर्ट में अधिकतम flicking है, पर प्रकाश डाला, क्योंकि यह शायद एक बग (उर्फ है यह स्थैतिक है लेकिन वर्ग के बाहर कुछ भी इसका उपयोग नहीं कर सकता है, आप ऐसा क्यों करना चाहते हैं?), या क्योंकि वास्तव में इसके साथ कुछ वाक्य रचनात्मक रूप से गलत है?

एक उदाहरण के रूप में यहाँ वर्ग का हिस्सा है, नोट =& 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; 
} 
+0

मुझे लगता है कि अधिक विशिष्ट कोड देखने की आवश्यकता होगी (हालांकि 'स्वयं :: $ ci->' चित्र पर्याप्त तस्वीर है), लेकिन मुझे लगता है कि यह PHPStorm का अजीब व्यवहार है। –

+0

@MichaelBerkowski जोड़ा कोड एक बेहतर तस्वीर पेंट करता है? – Hailwood

+0

शायद यह इस तरह से व्यवहार करता है क्योंकि आप एक गैर स्थैतिक विधि में 'स्वयं' कहते हैं? –

उत्तर

4

के लिए एक संदर्भ रिटर्न कि आपके product() विधि में आप निजी सदस्य self::$ci का उपयोग करने की कोशिश कर रहे हैं। आपका आईडीई सोचता है कि इस विधि को कहीं भी एक्सेस किया जा सकता है, और निजी स्थैतिक सदस्य $ci के साथ एक संघर्ष का पता लगाता है।

संबंधित मुद्दे