मैं बेहतर तरीके से समझना चाहूंगा कि नीचे के परिदृश्य में, वर्ग स्थिरांक बनाम उदाहरण चर के तरीके विरासत में प्राप्त होने के तरीके में अंतर है।
<?php
class ParentClass {
const TEST = "ONE";
protected $test = "ONE";
public function showTest(){
echo self::TEST;
echo $this->test;
}
}
class ChildClass extends ParentClass {
const TEST = "TWO";
protected $test = "TWO";
public function myTest(){
echo self::TEST;
echo $this->test;
}
}
$child = new ChildClass();
$child->myTest();
$child->showTest();
आउटपुट:
TWO
TWO
ONE
TWO
ऊपर दिए गए कोड में, चाइल्डक्लास के पास शोस्टेस्ट () विधि नहीं है, इसलिए पेरेंटक्लास शोस्टेस्ट () पद्धति का उपयोग वंशानुक्रम द्वारा किया जाता है। परिणाम दिखाते हैं कि चूंकि विधि पेरेंटक्लास पर निष्पादित हो रही है, इसलिए टेस्ट कंटेंट के पेरेंटक्लास संस्करण का मूल्यांकन किया जा रहा है, क्योंकि यह चाइल्डक्लास के संदर्भ में विरासत के माध्यम से मूल्यांकन कर रहा है, चाइल्डक्लास सदस्य चर $ परीक्षण का मूल्यांकन किया जा रहा है।
मैंने दस्तावेज़ीकरण पढ़ा है, लेकिन इस बारीकियों का कोई उल्लेख नहीं देख सकता। क्या कोई मेरे लिए कुछ रोशनी बहा सकता है?