2011-01-02 8 views
140

साथ पीएचपी वर्ग उदाहरण बनाना मैं दो वर्गों है:एक स्ट्रिंग

वर्ग ClassOne { } और वर्ग ClassTwo {}। मुझे एक स्ट्रिंग मिल रही है जो या तो "वन" या "दो" हो सकती है। इसके बजाय इस तरह के रूप में एक लंबी स्विच बयान का उपयोग करने का :

switch($str) { 
    case "One": 
     return new ClassOne(); 
    case "Two": 
     return new ClassTwo(); 
} 

वहाँ वैसे भी तरह से मैं एक उदाहरण के एक स्ट्रिंग का उपयोग कर बना सकते हैं, यानी new Class("Class" . $str);

धन्यवाद है,

योएल

उत्तर

334

हाँ, आप ऐसा कर सकते हैं!

$str = "One"; 
$class = "Class".$str; 
$object = new $class(); 

अन्य शांत सामान आप php में कर सकते हैं:
Variable variables:

$personCount = 123; 
$varname = 'personCount'; 
echo $$varname; // echo's 123 

और चर कार्यों & तरीकों।

$func = 'my_function'; 
$func('param1'); // calls my_function('param1'); 

$method = 'doStuff'; 
$object = new MyClass(); 
$object->$method(); // calls the MyClass->doStuff() method. 
+0

उदाहरणों के लिए धन्यवाद! – Joel

+0

ग्रेट उत्तर, धन्यवाद बॉब –

+7

wtf !!!!!! दिमाग उड़ा –

17

आप बस एक नया वर्ग पैदा करने के लिए निम्न सिंटैक्स का उपयोग कर सकते हैं उदाहरण के लिए 3 पर एक नजर है (इस आसान यदि आप एक factory बना रहे है):

$className = $whatever; 
$object = new $className; 

एक (असाधारण कच्चे तेल) उदाहरण के कारखाने विधि के रूप में:

public function &factory($className) { 

    require_once($className.'php'); 
    if(class_exists($className)) return new $className; 

    die('Cannot create new "'.$className.'" class - includes not found or class unavailable.'); 
}