PHP

2011-05-08 2 views
5

में स्थिर चर स्ट्रिंग पार्सिंग बहुत सरल; मैंने दस्तावेज़ों के माध्यम से पढ़ा है, लेकिन शायद मैं स्पष्टीकरण से उलझन में हूं।PHP

class Test{ 
    public static $var = 'world'; 
} 

echo "hello {Test::$var}"; // only parses $var in current scope, which is empty 

क्या वांछित कार्यक्षमता प्राप्त करने का कोई तरीका है? मैं अनुमान लगाने शुरू कर रहा हूं, क्योंकि मैंने बिना किसी सफलता के कई क्रमिक प्रयास किए हैं।

स्पष्टीकरण: मैं PHP के चरणीय पार्सिंग के साथ इसे प्राप्त करने की कोशिश कर रहा हूं, संगतता नहीं। जाहिर है, यदि वांछित विधि संभव नहीं है, तो मैं concatenation का सहारा लेगा, हालांकि मुझे उम्मीद है कि यह है।

उत्तर

8

चर पार्स डबल उद्धृत तार केवल "चर भाव" के लिए काम करता है। और इन्हें हमेशा बाइट अनुक्रम {$ से शुरू करना चाहिए। एक स्थिर पहचानकर्ता के लिए अपने संदर्भ हालांकि शुरू होता है {T hencewhy पीएचपी के साथ अगले $ अपने दोहरे उद्धरणों की ओर से पार्स करके ध्यान नहीं देता Test::

आप वहाँ कुछ धोखा कोड का उपयोग करने की जरूरत है।

$html = "htmlentities"; 
print "Hello {$html(Test::$var)}"; 

या चर के रूप में वर्ग के नाम पूर्व निर्धारित करें::

$Test = "Test"; 
print "Hello {$Test::$var}"; 

मैं वहाँ कोई देशी तरीका यह अन्यथा पूरा करने के लिए है डर लग रहा है या तो एक एनओपी आवरण समारोह का उपयोग करें।

+0

धन्यवाद ** मारियो **; मुझे उससे डर है; मेरी वांछित कार्यक्षमता के लिए देशी समर्थन की कमी। मुझे कुछ करीब पाने के लिए चारों ओर हैक करना होगा। – Dan

0

आप हमेशा छोटे टुकड़ों में गूंज तोड़ सकते हैं।

class Test{ 
    public static $var = 'world'; 
} 

echo "hello ", Test::$var; 
0

इस स्ट्रिंग संयोजन ऑपरेटर के साथ काम करता

echo "hello ".Test::$var; 

संपादित

नोट (।): कार्य, विधि कॉल, स्थिर वर्ग चर, और वर्ग स्थिरांक अंदर {$} PHP 5 के बाद से काम करते हैं। हालांकि, उपयोग किए गए मान का अर्थ स्कोप में एक चर के नाम के रूप में जिसमें स्ट्रिंग परिभाषित किया गया है। एकल घुंघराले ब्रेसिज़ ({}) फ़ंक्शन या विधियों या कक्षा स्थिरांक या स्थैतिक वर्ग चर के मानों को एक्सेस करने के लिए पर काम नहीं करेगा।

Source वाया PHPs में This answer

+0

धन्यवाद ** गैज़लर **; मैं वैरिएबल पार्सिंग का लाभ लेने की कोशिश कर रहा हूं, हालांकि मैं संगतता नहीं चाहता हूं। – Dan

+0

मुझे विश्वास नहीं है कि यह संभव है। कृपया यह प्रश्न देखें: http://stackoverflow.com/questions/1267093/php-static-variables-in-double-quotes विशेष रूप से लिंक को शीर्ष उत्तर के रूप में पोस्ट किया गया है, जिसे मैंने अपने संपादन में उद्धृत किया है। – Gazler