2012-08-03 12 views
10

नीचे php में मेरी कोड है, और मैं त्रुटि हो रही है:क्या स्थिर सरणी संपत्ति php में संभव नहीं है?

Parse error: syntax error, unexpected '[' in /LR_StaticSettings.php on line 4

<?php 
class StaticSettings{ 
    function setkey ($key, $value) { 
     self::arrErr[$key] = $value; // error in this line 
    } 
} 
?> 

मैं स्थिर उपयोग करना चाहते हैं नहीं $this->arrErr[$key] ताकि मैं हो और उदाहरण/वस्तु बनाने के बिना स्थिर गुण सेट कर सकते हैं।

यह त्रुटि क्यों है? क्या हम स्थिर सरणी नहीं बना सकते?

यदि कोई और तरीका है, तो कृपया मुझे बताएं। धन्यवाद

+0

आपका कोड स्थिर सदस्य चर के रूप में '$ arrErr' परिभाषित नहीं करना चाहिए। आपको इसे 'सार्वजनिक स्थैतिक $ arrErr = array() के रूप में घोषित करना चाहिए; ' – Matt

+0

वोट करने का कोई कारण नहीं है? मुझे यह सवाल मेरी मदद करता है। तो, वोट दें। बीटीडब्ल्यू, ओपी को उत्तर – goFrendiAsgard

उत्तर

23

जब आप इसे संदर्भ आप एक स्थिर सदस्य चर के रूप में चर ऐलान करते हैं और डॉलर चिन्ह के साथ अपने नाम उपसर्ग पूरे करने होंगे:

class StaticSettings{ 
    private static $arrErr = array(); 
    function setkey($key,$value){ 
     self::$arrErr[$key] = $value; 
    } 
} 

आप इसे इस तरह का दृष्टांत चाहते हैं:

$o = new StaticSettings; 
$o->setKey("foo", "bar"); 
print_r(StaticSettings::$arrErr); // Changed private to public to get this to work 

आप इसे this demo में काम कर सकते हैं।

+0

उत्तर स्वीकार करने पर विचार करना चाहिए अरे धन्यवाद। मुझे $ संकेत याद आया। अब यह काम कर रहा है। 'वर्ग स्टेटिक सेटिंग्स { निजी स्थिर $ arrErr = array(); फ़ंक्शन सेटकी ($ कुंजी, $ मान) { स्वयं :: $ arrErr [$ key] = $ मान; } } '। यह मेरी मूर्खतापूर्ण गलती थी। – user1463076

+0

PHP में चर परिभाषित करने की कोई आवश्यकता नहीं है। हम इसका सरल उपयोग करते हैं। लिखने की कोई ज़रूरत नहीं है, 'निजी स्थिर $ arrErr = array(); ' – user1463076

+1

@ user1463076 - यह सच नहीं है। जब आप इसे छोड़ देते हैं, [एक घातक त्रुटि उत्पन्न होती है] (http://viper-7.com/JDhBCZ)। – nickb

0

आपका कोड एक स्थिर सदस्य चर के रूप में $arrErr परिभाषित नहीं करता है। आपको इसे

<?php 
class StaticSettings{ 
    public static $arrErr = array(); 

    function setkey($key,$value){ 
     self::arrErr[$key] = $value; 
    } 
} 
?> 
संबंधित मुद्दे