Is it right that 'self' in inherited method still points to the parent?
If it is, can you explain it? It makes me worry :)

A piece of code below for example

class MyParent {
       const NAME = 'MyParent';
       public function get_instance() {
               return new self;
       public function get_another_instance() {
               $class_name = get_class($this);
               return new $class_name;
       public function get_name() {
               return self::NAME;

class MyClass extends MyParent {
       const NAME = 'MyClass';

$a = new MyClass;
$b = $a->get_instance();
$c = $a->get_another_instance();

echo $a->get_name(),"\n";
echo get_class($b),"\n";
echo get_class($c),"\n";

PHP General Mailing List (
To unsubscribe, visit:

Reply via email to