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