Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

Llamadas que propagan y no propagan con self:: duda poo

Estas en el tema de Llamadas que propagan y no propagan con self:: duda poo en el foro de Frameworks y PHP orientado a objetos en Foros del Web. -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: ...
  #1 (permalink)  
Antiguo 06/08/2011, 08:21
Avatar de skywolker  
Fecha de Ingreso: julio-2011
Ubicación: España
Mensajes: 195
Antigüedad: 8 años
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
  #2 (permalink)  
Antiguo 06/08/2011, 09:18
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 11 años, 7 meses
Puntos: 845
Respuesta: Llamadas que propagan y no propagan con self:: duda poo

Que es lo que no entiendes exactamente ? y mismo de donde sacaste el ejemplo esta la explicación de late static bindings.
__________________
http://es.phptherightway.com/
thats us riders :)
  #3 (permalink)  
Antiguo 06/08/2011, 09:25
Avatar de skywolker  
Fecha de Ingreso: julio-2011
Ubicación: España
Mensajes: 195
Antigüedad: 8 años
Puntos: 8
Respuesta: Llamadas que propagan y no propagan con self:: duda poo

Uhmm de ahora en adelante tendre que dar la url :

http://www.php.net/manual/es/language.oop5.late-static-bindings.php

Etiquetas: llamadas, php, poo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:14.