Name Binding - Late Static

Late Static

Late static binding is a variant of binding somewhere between static and dynamic binding. Consider the following PHP example:

class A { static $word = "hello"; static function hello {print self::$word;} } class B extends A { static $word = "bye"; } B::hello;

In this example, the PHP interpreter binds the function hello to class A, and so the call to B::hello produces the string "hello". If the semantics of "self::$word" had been based on "late static binding", then the result would have been "bye".

Beginning with PHP version 5.3, late static binding is supported . Specifically, if "self::$word" in the above were changed to "static::$word" as shown in the following block, then the result of the call to B::hello would be "bye":

class A { static $word = "hello"; static function hello {print static::$word;} } class B extends A { static $word = "bye"; } B::hello;

Read more about this topic:  Name Binding

Famous quotes containing the word late:

    I have seen in this revolution a circular motion of the sovereign power through two usurpers, father and son, to the late King to this his son. For ... it moved from King Charles I to the Long Parliament; from thence to the Rump; from the Rump to Oliver Cromwell; and then back again from Richard Cromwell to the Rump; then to the Long Parliament; and thence to King Charles, where long may it remain.
    Thomas Hobbes (1579–1688)