2008-08-07 19 views
7

की श्रृंखला के एक CONST विशेषता को एक्सेस करना यह मैं इसे कैसे जो पीएचपी 5.3.0+क्लासेस

<?php 
    class MyClass 
    { 
     const CONSTANT = 'Const var';   
    } 

    $classname = 'MyClass'; 
    echo $classname::CONSTANT; // As of PHP 5.3.0 
?> 

में काम करेगा करना चाहता था लेकिन मैं PHP 5.2.6 उपयोग तक ही सीमित कर रहा हूँ है। किसी को भी वर्ग instantiating बिना इस व्यवहार अनुकरण करने के लिए एक आसान तरीका के बारे में सोच सकते हैं?

उत्तर

10

आप पूर्व 5.3 कोड में eval का उपयोग किए बिना ऐसा कर सकते हैं।

<?php 

class MyClass 
{ 
    const CONSTANT = 'Const var'; 
} 

$classname = 'MyClass'; 
echo constant("$classname::CONSTANT"); 

?> 
: बस constant फ़ंक्शन का उपयोग करें
-1

आप absolutly ऐसे ही एक निरंतर का उपयोग करने की जरूरत है, तो आप ऐसा कर सकते हैं:

<?php 
class MyClass 
{ 
     const CONSTANT = 'Const var'; 
} 

$classname = 'MyClass'; 
echo eval('return '.$classname.'::CONSTANT;'); 
?> 

लेकिन, अगर मैं तुम्हें थे, मैं eval का उपयोग नहीं करने की कोशिश होगी।

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