लेट स्टैटिक बाइंडिंग के पीछे मूल विचार यह है कि इनहेरिटेंस की अवधारणा और 'सेल्फ' कीवर्ड की अवधारणा समान नियमों का पालन नहीं करती है। उदाहरण के लिए, चाइल्ड क्लास में बुलाए गए पैरेंट क्लास में एक विधि 'फन' से बच्चे का 'सेल्फ' रेफरेंस नहीं होगा (जैसा कि अपेक्षित था)।
लेट स्टैटिक बाइंडिंग की अवधारणा एक नया कीवर्ड 'स्टैटिक' लाती है, जो उपयोग किए जाने पर फंक्शन को रनटाइम क्लास या उस क्लास से बांधता है जहां फंक्शन का पहली बार इस्तेमाल किया गया था। इसके अलावा, किसी भी स्थिर फ़ंक्शन या चर को आमतौर पर रनटाइम के दौरान निष्पादित किया जाता है न कि संकलन समय के दौरान। इसलिए, यदि किसी मान को स्थिर चर को गतिशील रूप से असाइन करने की आवश्यकता होती है, तो यह रनटाइम के दौरान होता है, और इसे लेट स्टैटिक बाइंडिंग के रूप में जाना जाता है।
उदाहरण
<?php class student { public static $my_name = 'Joe'; public static function getName() { return "The name of the student is : " . self::$my_name; } public static function getAge() { echo static::getName(); } } class Professor extends student { public static function getName() { return "The name of the student is : " . self::$my_name . " and age is 24."; } } student::getAge(); echo "\n"; Professor::getAge(); ?>
आउटपुट
The name of the student is : Joe The name of the student is : Joe and age is 24.
'छात्र' नामक एक वर्ग में एक नाम और एक फ़ंक्शन होता है जो नाम प्राप्त करता है। एक अन्य फ़ंक्शन छात्र की आयु प्राप्त करता है। 'प्रोफेसर' नामक एक वर्ग छात्र वर्ग का विस्तार करता है और कार्य भी विरासत में मिला है। उम्र लाने का कार्य छात्र और प्रोफेसर दोनों के उदाहरण पर कहा जाता है।