ইন্ট্রো
পিএইচপি আপনাকে ক্লাসে ম্যাজিক পদ্ধতি ঘোষণা করে পদ্ধতি কল এবং সম্পত্তি অ্যাক্সেসগুলি ওভারলোড করতে দেয় । এটি কোডগুলি সক্ষম করে:
class Foo {
public function __get($name) { return 42; }
}
$foo = new Foo;
echo $foo->missingProperty; // prints "42"
ওভারলোডিং ইনস্ট্যান্সের বৈশিষ্ট্য এবং পদ্ধতিগুলি ছাড়াও পিএইচপি 5.3.0 থেকে আমরা staticযাদু পদ্ধতিতে ওভাররাইড করে পদ্ধতিগুলি ওভারলোড করতে পারি __callStatic।
অনুপস্থিত কিছু
উপলভ্য কার্যকারিতা থেকে যা স্পষ্টতই অনুপস্থিত তা হ'ল স্থির বৈশিষ্ট্যগুলি ওভারলোড করার ক্ষমতা , উদাহরণস্বরূপ:
echo Foo::$missingProperty; // fatal error: access to undeclared static property
এই সীমাবদ্ধতা স্পষ্টভাবে নথিভুক্ত করা হয় :
সম্পত্তি ওভারলোডিং কেবল বস্তুর প্রসঙ্গে কাজ করে। এই যাদু পদ্ধতিগুলি স্থির প্রসঙ্গে ট্রিগার করা হবে না। সুতরাং এই পদ্ধতিগুলি ঘোষণা করা উচিত নয়
static। পিএইচপি 5.3.0 হিসাবে, যাদু ওভারলোডিংয়ের কোনও পদ্ধতি ঘোষণা করা থাকলে সতর্কতা জারি করা হয়static।
কিন্তু কেন?
আমার প্রশ্নগুলি হ'ল:
- এই কার্যকারিতাটি বর্তমানে সমর্থিত নয় এমন কোনও প্রযুক্তিগত কারণ রয়েছে কি? বা সম্ভবত একটি (কাঁপুনি) রাজনৈতিক কারণ?
- অতীতে এই কার্যকারিতা যুক্ত করার জন্য কি কোনও বাতিল হওয়া প্রচেষ্টা রয়েছে?
সর্বাধিক গুরুত্বপূর্ণ, প্রশ্নটি নয় "আমি কীভাবে ব্যবহারকারীর দেশ পিএইচপি-তে ডায়নামিক স্ট্যাটিক বৈশিষ্ট্য রাখতে পারি?"। এটি বলেছে, আপনি যদি __callStaticভাগ করে নিতে চান তার উপর ভিত্তি করে কোনও বিশেষরূপে সুন্দর বাস্তবায়ন সম্পর্কে জানেন তবে তা সব উপায়ে করুন।
__getStatic()এবং__setStatic()উপর স্ট্যাটিক ক্লাস, এটি এখনও ইন্সটানসিএবেল শ্রেণীর জন্য এই কার্যকারিতা আছে দরকারী হবে। আপনি কি এই দিকে কোনও পদক্ষেপ সম্পর্কে সচেতন?