M.Sokolewicz wrote:
Basically what you can remember here is:
:: calls a property or method in a STATIC context (ie. without access to the object's (if any) actual properties) -> calls a propert or method in a DYNAMIC context (ie. WITH access to that specific object's collection of methods and properties).


While that's generally true, self::, parent::, ClassName:: and ParentClassName:: can all be used in both contexts when calling methods.

Consider the following code:

<?php
class Foo {
   function bar() { var_dump(isset($this)); }
}
class Test extends Foo {
   function __construct()
   {
       self::bar();
       parent::bar();
       Foo::bar();
       Test::bar();
   }
}
new Test;
?>

At first glance these all appear to be static method calls, but $this is available in every case.

Arpad

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to