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:

    Books, gentlemen, are a species of men, and introduced to them you circulate in the “very best society” that this world can furnish, without the intolerable infliction of “dressing” to go into it. In your shabbiest coat and cosiest slippers you may socially chat even with the fastidious Earl of Chesterfield, and lounging under a tree enjoy the divinest intimacy with my late lord of Verulam.
    Herman Melville (1819–1891)