আমি আরও ভাল করে বুঝতে চাই যে, নীচের দৃশ্যে, শ্রেণি ধ্রুবকদের যেমন বনাম উদাহরণের ভেরিয়েবলগুলি উত্তরাধিকার সূত্রে প্রাপ্ত তার মধ্যে একটি পার্থক্য রয়েছে।
<?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
উপরের কোডে, চাইল্ড ক্লাসে শো টেস্ট () পদ্ধতি নেই, সুতরাং প্যারেন্টক্লাস শোটেষ্ট () পদ্ধতিটি উত্তরাধিকার দ্বারা ব্যবহৃত হয়। ফলাফলগুলি দেখায় যে যেহেতু পদ্ধতিটি প্যারেন্টক্লাসে কার্যকর হচ্ছে, তাই টেস্ট ধ্রুবকের প্যারেন্টক্লাস সংস্করণটি মূল্যায়ন করা হচ্ছে, যদিও এটি উত্তরাধিকারের মাধ্যমে চাইল্ডক্লাসের প্রেক্ষাপটে মূল্যায়ন করা হচ্ছে, তাই চাইল্ড ক্লাসের সদস্য পরিবর্তনশীল $ পরীক্ষাটি মূল্যায়ন করা হচ্ছে।
আমি ডকুমেন্টেশন পড়েছি, তবে এই সংজ্ঞার কোনও উল্লেখ দেখতে পাচ্ছে না। কেউ কি আমার জন্য কিছু আলোকপাত করতে পারে?