2012-11-30 45 views
17

मुझे यह कोड में मिला, इसका क्या अर्थ है और उस और सामान्य $ dir चर के बीच क्या अंतर है?{} का क्या अर्थ है?

global ${$dir}; 

$this->{$dir} = new $class(); 
+2

यह गतिशील नाम है। अधिक http://stackoverflow.com/questions/9257505/dynamic-variable-names-php –

उत्तर

40

इसे जटिल घुंघराले वाक्यविन्यास कहा जाता है।

स्ट्रिंग प्रतिनिधित्व के साथ किसी भी स्केलर चर, सरणी तत्व या ऑब्जेक्ट प्रॉपर्टी को इस वाक्यविन्यास के माध्यम से शामिल किया जा सकता है। बस अभिव्यक्ति को वैसे ही लिखें जैसा कि यह स्ट्रिंग के बाहर दिखाई देगा, और फिर इसे {और} में लपेटें। चूंकि {भाग नहीं लिया जा सकता है, यह वाक्यविन्यास केवल तभी पहचाना जाएगा जब $ तुरंत { {\ $ से का उपयोग एक शाब्दिक {$ प्राप्त करें।

और जानकारी:

http://www.php.net/manual/en/language.types.string.php#language.types.string.parsing.complex

1

वे चर चर के नाम रैप करने के लिए उपयोग किया जाता है।

1

एक गतिशील रूप से निर्मित चर। उदाहरण के लिए:

$app = new App(); 
$app->someMethod('MyDB'); 

// global 
$config = array('user' => 'mark', 'pass' => '*****'); 

class App { 

    // MyDB instance 
    protected $config; 

    public function someMethod($class) { 

     $dir = 'config'; 

     // $config = array('user' => 'mark', 'pass' => '*****') 
     global ${$dir}; 
     // not static variable !!! 
     $this->{$dir} = new $class(); 
    } 
} 

class MyDB { 
    // body 
} 
संबंधित मुद्दे