2010-10-06 16 views
49

संभव डुप्लिकेट:
PHP class instantiation. To use or not to use the parentheses?ब्रांड्स के साथ या बिना कक्षा को इंस्टेंट करें?

मैं इस पर कोई आधिकारिक दस्तावेज नहीं मिला है। लेकिन इससे पहले कोई फर्क नहीं पड़ता कि कक्षा के बिना हमारे साथ किसी वर्ग को तत्काल स्थापित किया गया है - जब तक कोई पैरामीटर शामिल नहीं है, है ना?

$car = new Car; 

या

$car = new Car(); 

लेकिन किसी को भी अगर वहाँ प्रदर्शन में एक फर्क है मुझे बता सकते हैं? 'और सही' तरीका किस तरह से है? क्या इसके लिए कोई आधिकारिक दस्तावेज है?

उत्तर

83

प्रदर्शन में कोई अंतर बिल्कुल नगण्य होने वाला है।

जबकि दोनों तरीकों से ठीक हैं, मैं व्यक्तिगत रूप new Car(); का उपयोग कर, क्योंकि आम तौर पर, एक विधि यहाँ बुलाया जा रहा है, और समारोह/विधि () की आवश्यकता होती है PHP में कॉल पसंद करेंगे। साथ ही, यह उन तात्कालिकताओं के साथ अधिक संगत है जिनमें पैरामीटर हैं।

लेकिन अंत में, यह स्वाद के लिए नीचे है। इससे कोई फर्क नहीं पड़ता कि आप किस तरह से चुनते हैं, लेकिन जब आप एक चुनते हैं, तो लगातार इसके साथ चिपके रहें!

+2

बिल्कुल जो मैं लिखने जा रहा था, +1। – tplaner

+2

+1 और हटाया गया मेरा - मैं 100% सहमत हूं। – lonesomeday

+7

+1 ईमानदारी से मैं 'नए क्लासयूजिंग डिफॉल्ट कन्स्ट्रक्टर' पर विचार नहीं करता हूं, और 'नया क्लासविथकॉन्स्ट्रक्टरविथ पैरामीटर ($ foo, $ bar);' एक ही स्क्रिप्ट में लगातार होना चाहिए * कोई फर्क नहीं पड़ता *। लेकिन यह सिर्फ मुझे लगता है। – BoltClock

3

वे दोनों सही तरीके हैं, और मुझे यकीन है कि प्रदर्शन में कोई अंतर नहीं है।

6

पहली तत्कालता में कोई "आधिकारिक" संदर्भ नहीं है। आधिकारिक php दस्तावेज़ में आप हमेशा दूसरे को पाते हैं। तो, मैं दृढ़ता के लिए इसे prefere है। लेकिन यह आपकी पसंद है

+6

पर कोई तर्क नहीं देता है तो मैं लगातार ब्रैकेट छोड़ देता हूं। मुझे एक बहुत से उदाहरण मिलते हैं जहां प्रलेखन उदाहरण गैर-संश्लेषित रूप का उपयोग करते हैं, जिनमें "कक्षाएं और ऑब्जेक्ट्स" अनुभाग। – GZipp

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