আমি কি একই ফলাফল পাব?
আসলে তা না. যদিও আমি পিএইচপি 5.2 এর জন্য কোনও কাজের কথা জানি না।
মধ্যে পার্থক্য কি new selfএবং new static?
selfমূলশব্দটি newআসলে একই ক্লাসে লিখিত হয়।
static, পিএইচপি 5.3 এর শেষের স্থিতিশীল বাইন্ডিংগুলিতে, আপনি পদ্ধতিটিকে যে শ্রেণিবিন্যাস বলেছিলেন সেটিকে বোঝায় to
নিম্নলিখিত উদাহরণে, Bউভয় পদ্ধতি থেকে উত্তরাধিকার সূত্রে প্রাপ্ত A। selfআবাহন আবদ্ধ হয় Aকারণ এটি সংজ্ঞায়িত হয়েছে তা Aপ্রথম পদ্ধতি 'র বাস্তবায়ন, যেহেতু staticবলা বর্গ আবদ্ধ হয় (এছাড়াও দেখুন get_called_class())।
class A {
public static function get_self() {
return new self();
}
public static function get_static() {
return new static();
}
}
class B extends A {}
echo get_class(B::get_self()); // A
echo get_class(B::get_static()); // B
echo get_class(A::get_self()); // A
echo get_class(A::get_static()); // A