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:

    What else has been English news for so long a season? What else, of late years, has been England to us,—to us who read books, we mean?... Carlyle alone, since the death of Coleridge, has kept the promise of England. It is the best apology for all the bustle and the sin of commerce, that it has made us acquainted with the thoughts of this man.
    Henry David Thoreau (1817–1862)