Ver Mensaje Individual
  #1 (permalink)  
Antiguo 06/08/2011, 08:21
Avatar de skywolker
skywolker
 
Fecha de Ingreso: julio-2011
Ubicación: España
Mensajes: 195
Antigüedad: 12 años, 9 meses
Puntos: 8
Pregunta Llamadas que propagan y no propagan con self:: duda poo

-Como podra ver la clase llama al parent que lo contiene.
-La clase parent ejecuta self:: y debuelbe el nombre de la clase:



Código PHP:
<?php
class {
    public static function 
who() {
        echo 
__CLASS__;
    }
    public static function 
test() {
        
self::who();
    }
}

class 
extends {
    public static function 
who() {
        echo 
__CLASS__;
    }
}

B::test();
?>
Cita:
A
-Aqui es todo lo contrario¿Que ocurre que me lo aclare porfavor?:

Código PHP:
<?php
class {
    public static function 
foo() {
        static::
who();
    }

    public static function 
who() {
        echo 
__CLASS__."\n";
    }
}

class 
extends {
    public static function 
test() {
        
A::foo();
        
parent::foo();
        
self::foo();
    }

    public static function 
who() {
        echo 
__CLASS__."\n";
    }
}
class 
extends {
    public static function 
who() {
        echo 
__CLASS__."\n";
    }
}

C::test();
?>
Cita:
A
C
C
-Pero para mas extraño para mi es que parent:: esta en lo sierto o todo lo contrario.


// 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.

Última edición por skywolker; 06/08/2011 a las 08:29