আমি কি একই ফলাফল পাব?
আসলে তা না. যদিও আমি পিএইচপি 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