के भीतर से कक्षा का उदाहरण बनाएं जैसा कि शीर्षक कहता है, मैं एक वर्ग के एक स्थिर विधि के भीतर से एक वर्ग का उदाहरण बनाना चाहता हूं। मैंने अभी तक यह पता लगाया है कि मैं ऐसा कुछ कर सकता हूं:स्थैतिक विधि
class Foo{
public $val;
public static function bar($val){
$inst = new Foo;
$inst->val = $val;
return $inst;
}
}
जो मुझे ऐसा करने देता है।
$obj = Foo::bar("some variable");
जो बढ़िया है।
तो अब सवाल। क्या ऐसा करने का कोई आसान तरीका है कि मुझे पता नहीं है, या एक ही परिणाम प्राप्त करने के लिए कोई शॉर्टकट नहीं है? क्या इस फैशन में एक उदाहरण बनाने के कोई फायदे या नुकसान हैं?
धन्यवाद।
यह इस तरह से करने के लिए अपने कारण क्या है? सादा '$ obj = new foo (" कुछ चर ") का उपयोग क्यों न करें;'? –
यह मुझे समझ में नहीं आता है कि कन्स्ट्रक्टर के साथ कुछ बनाने के लिए जो कुछ बिंदु पर पहले से ही किया गया है। उदाहरण के लिए, वर्तमान प्रोजेक्ट में, मैं प्रोफाइल :: get() को उस प्रोफ़ाइल में लोड करने के लिए उपयोग करता हूं जिसमें (कुछ बिंदु पर) पहले ही "निर्मित" हो गया है। शायद मैं कन्स्ट्रक्टर का दुरुपयोग कर रहा हूं या ओवरलोडिंग के जवाब के रूप में इसका उपयोग कर रहा हूं। – daniel