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