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:

    A glimpse through an interstice caught,
    Of a crowd of workmen and drivers in a barroom around the stove late of a winter night, and I unremarked seated in a corner,
    Of a youth who loves me and whom I love, silently approaching and seating himself near, that he may hold me by the hand,
    A long while amid the noises of coming and going, of drinking and
    oath and smutty jest,
    There we two, content, happy in being together, speaking little,
    perhaps not a word.
    Walt Whitman (1819–1892)