सबसे पहले, शामिल एक आदेश है कि एक php स्रोत फ़ाइल पढ़ सकते हैं और व्यवहार करता है के रूप में यह शामिल निर्देश के स्थान पर लिखा गया था है। आप इसे किसी भी php स्रोत फ़ाइल पर उपयोग कर सकते हैं और वर्ग विरासत से संबंधित नहीं है।
वैसे, यदि आप कक्षा ए स्रोत कोड वाली फ़ाइल शामिल नहीं करते हैं तो आप उस वर्ग को विस्तारित नहीं कर सकते हैं।
कीवर्ड के साथ कक्षा को विस्तारित करें ऑब्जेक्ट उन्मुख प्रोग्रामिंग में एक महत्वपूर्ण अवधारणा है जो विरासत की अवधारणा को दर्शाता है।
आपको कुछ विधियों के साथ एक कक्षा (ए) मिलती है और एक समान वर्ग (बी) की आवश्यकता होती है, जिसमें थोड़ा अलग व्यवहार होता है, आप कक्षा को ए श्रेणी को विस्तारित कर सकते हैं और केवल उन विधियों को संशोधित कर सकते हैं जिन्हें बदलना है (यह है ओवरराइडिंग कहा जाता है) या नए जोड़ना कहा जाता है।
विरासत के विपरीत संरचना है। रचना के साथ आप वांछित व्यवहार प्राप्त करने के लिए कक्षाओं को अपने व्यवहार को बदलने के लिए विस्तारित नहीं करते हैं, इसके बजाय आपको कक्षाओं का एक पैचवर्क करना होता है।
विकिपीडिया पर आप object composition पर एक बेहतर विवरण और [वर्ग विरासत] (http://en.wikipedia.org/wiki/Inheritance_(computer_science))
ऐसा लगता है इन अवधारणाओं पर एक छोटे से confusione है, जैसा कि आप एक ही समय में अपने वर्ग एक का विस्तार करने और, पा सकते हैं, तो आप इसे लिखने का प्रयास करें (वैसे, सही वाक्यविन्यास $ ए = नया बी();) है।
यह एक उपयोगी संदर्भ, जाहिर है, [GOF, डिजाइन पैटर्न] (http://en.wikipedia.org/wiki/Design_Patterns_(book))
क्या धीमी है विस्तार या सहित मैं सिर्फ एक छोटे से बेंचमार्क किया था, और मैंने पाया है कि विस्तार कोड थोड़ा धीमा हो जाता है यह आप क्या मतलब है।।?।? – daniel
कहें कि मैं ए पर फू को आमंत्रित करना चाहता हूं यह बी को foo प्रतिनिधि करता है, तो संरचना दृष्टिकोण में दो विधि कॉल के लिए समय लिया जाएगा। यदि ए बी बढ़ाता है तो ए पर फू को आविष्कार करना 1 विधि कॉल माना जाता है और कक्षाओं को परिभाषित किए जाने के अलावा लुकअप की कोई आवश्यकता नहीं होती है (जो एक बार होता है)। –