-La clase parent ejecuta self:: y debuelbe el nombre de la clase:
Código PHP:
<?php
class A {
public static function who() {
echo __CLASS__;
}
public static function test() {
self::who();
}
}
class B extends A {
public static function who() {
echo __CLASS__;
}
}
B::test();
?>
Cita:
-Aqui es todo lo contrario¿Que ocurre que me lo aclare porfavor?: A
Código PHP:
<?php
class A {
public static function foo() {
static::who();
}
public static function who() {
echo __CLASS__."\n";
}
}
class B extends A {
public static function test() {
A::foo();
parent::foo();
self::foo();
}
public static function who() {
echo __CLASS__."\n";
}
}
class C extends B {
public static function who() {
echo __CLASS__."\n";
}
}
C::test();
?>
Cita:
-Pero para mas extraño para mi es que parent:: esta en lo sierto o todo lo contrario.A
C
C
C
C
// sin plantearme dudas seria:
parent::foo();// mi parent es C
self::foo();// Y self clase C y no B <--- como es esto posible ---> pues....
Seria que al ejecutar
C::test();
Ya estamos asignando automaticamente la clase que le corresponde
// pero todo esto es una teoria no lo tengo claro. ayuda porfavor.