1. Late static binding works by storing the class name on the previous "non-forwarding call" (Non-forwarding calls). When a static method call is made, the class name is the one that is explicitly specified (usually in the left part of the: operator), and the class to which the object belongs when a non-static method call is made. This feature is named "Late static binding" from the perspective of the language itself. Late binding means that static:: It is no longer parsed to define the class in which the current method resides, but is calculated at the actual run time.
2. Test Example:
Class A{public function run () { static::test ();//late static binding self::test ();//not late static binding } Public static function test () { echo ' A class<br> '; }} Class B extends a{public static function test () { echo ' B class<br> '; }} $a = new B (); $a->run ();//output//b class//a Class