2010-02-10 7 views
6
class My_class 
{ 
    const STATUS_ERROR = 0; 
    const STATUS_OK = 1; 
    const DB_TABLE = TABLE_PREFIX . 'class_table'; 
}

दो स्थितियों में काम ठीक है और कक्षा विधियों के भीतर self::STATUS_ERROR और self::STATUS_OK के रूप में उपयोग किया जा सकता है।मैं निरंतर और एक चर को कैसे जोड़ सकता हूं और इसे PHP के साथ कक्षा निरंतर स्टोर कर सकता हूं?

समस्या तीसरी स्थिरता को परिभाषित करने का प्रयास करते समय निम्न त्रुटि को फेंकने का तरीका है।

Parse error: syntax error, unexpected '.', expecting ',' or ';' in /home/sub/sub/directory/script.php

+0

मैं भी यही समस्या का सामना करते आया का परिणाम नहीं हो सकता है। खैर, मेरे लिए एक सीमा के रूप में दिखता है। यहां उल्लेख किया गया है: http://bugs.php.net/bug.php?id=42355 –

+1

उपरोक्त बग को आरएफसी में बदल दिया गया था, और इसे v 5.6 में शामिल करने के लिए अनुमोदित किया गया था जहां यह क्षमता अब उपलब्ध है: https://wiki.php.net/rfc/const_scalar_exprs। –

उत्तर

9

आप नहीं है। स्थिरांक स्थिर हैं। आप उनमें कुछ भी स्टोर नहीं कर सकते हैं।

हालांकि आप एक स्थिर संपत्ति का उपयोग कर सकते हैं।

class My_Class { 
    public static $DB_TABLE; 
} 
My_Class::$DB_TABLE = TABLE_PREFIX . 'class_table'; 

आप घोषणा के भीतर यह नहीं कर सकते, तो आप एक स्थिर विधि के बजाय पसंद कर सकते हैं।

class My_Class { 
    public static function dbTable() { 
    return TABLE_PREFIX . 'class_table'; 
    } 
} 
संबंधित मुद्दे

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