@ ফ্র্যাঙ্কের বর্তমানে গৃহীত উত্তরগুলি কাজ করবে তবে বাস্তবে এটি একাধিক উত্তরাধিকার নয় বরং সুযোগের বাইরে নির্ধারিত শ্রেণীর একটি শিশু উদাহরণ, এখানেও সংক্ষিপ্ততা রয়েছে __call()
- $this->childInstance->method(args)
"বর্ধিত" শ্রেণিতে আপনার যে কোনও জায়গাতেই বহিরাগতের ক্লাস পদ্ধতিটি প্রয়োজন কেবল ব্যবহার করার বিষয়ে বিবেচনা করুন ।
সঠিক উত্তর
কীওয়ার্ডের ম্যানুয়ালextends
অনুসারে আপনি যথাক্রমে সত্যই তা করতে পারবেন না :
বর্ধিত শ্রেণি সর্বদা একক বেস শ্রেণীর উপর নির্ভরশীল, একাধিক উত্তরাধিকার সমর্থিত নয়।
আসল উত্তর
তবে @ অ্যাডাম সঠিকভাবে প্রস্তাবিত হিসাবে এটি আপনাকে একাধিক স্তরক্রমিক উত্তরাধিকার ব্যবহার করতে নিষেধ করে না।
আপনি একটি শ্রেণি প্রসারিত করতে পারেন, অন্য সাথে অন্য এবং অন্য সাথে আরও অনেক কিছু ...
এ সম্পর্কে খুব সহজ উদাহরণ হতে হবে:
class firstInheritance{}
class secondInheritance extends firstInheritance{}
class someFinalClass extends secondInheritance{}
//...and so on...
গুরুত্বপূর্ণ তথ্য
যেমন আপনি লক্ষ্য করেছেন, প্রক্রিয়াটিতে অন্তর্ভুক্ত সমস্ত শ্রেণীর উপর যদি আপনার নিয়ন্ত্রণ থাকে তবে আপনি কেবল শ্রেণিবিন্যাসের মাধ্যমে একাধিক (2+) ইন্টিরিটেন্স করতে পারেন - এর অর্থ, আপনি এই সমাধানটি প্রয়োগ করতে পারবেন না যেমন বিল্ট-ইন ক্লাস সহ বা ক্লাসগুলির সাথে আপনি কেবল সম্পাদনা করতে পারবেন না - আপনি যদি এটি করতে চান তবে আপনার @ ফ্র্যাঙ্ক সমাধান - সন্তানের দৃষ্টান্তগুলি রেখে যায়।
... এবং শেষ পর্যন্ত কিছু আউটপুট সহ উদাহরণ:
class A{
function a_hi(){
echo "I am a of A".PHP_EOL."<br>".PHP_EOL;
}
}
class B extends A{
function b_hi(){
echo "I am b of B".PHP_EOL."<br>".PHP_EOL;
}
}
class C extends B{
function c_hi(){
echo "I am c of C".PHP_EOL."<br>".PHP_EOL;
}
}
$myTestInstance = new C();
$myTestInstance->a_hi();
$myTestInstance->b_hi();
$myTestInstance->c_hi();
কোন ফলাফল
I am a of A
I am b of B
I am c of C