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

Invocar método static con reflection

Estas en el tema de Invocar método static con reflection en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Holas a todos, mi pregunta es sencillita. Tengo una variable $c con el nombre de una clase y la variable $m con el nombre de ...
  #1 (permalink)  
Antiguo 30/07/2008, 18:19
Avatar de caerolus  
Fecha de Ingreso: agosto-2004
Ubicación: Madrid, España
Mensajes: 280
Antigüedad: 19 años, 8 meses
Puntos: 1
Invocar método static con reflection

Holas a todos,

mi pregunta es sencillita. Tengo una variable $c con el nombre de una clase y la variable $m con el nombre de un método de esa clase. Para invocar el método, bastaría con:
Código PHP:
$v = new $c(); // crear un objeto
$v->$c(); // e invocar 
el problema me viene cuando ese método es static. De la forma tradicional sería algo como:
Código PHP:
Clase::Metodo(); 
pero al estar usando reflecion, esto no me va:
Código PHP:
$c::$m(); 
¿Alguien sabe cómo puedo invocarlo sin necesidad de instanciar un objeto?
Gracias!
__________________
Mi página personal: Julián Urbano
  #2 (permalink)  
Antiguo 30/07/2008, 20:08
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Invocar método static con reflection

call_user_func??

Saludos.
  #3 (permalink)  
Antiguo 31/07/2008, 04:14
Avatar de caerolus  
Fecha de Ingreso: agosto-2004
Ubicación: Madrid, España
Mensajes: 280
Antigüedad: 19 años, 8 meses
Puntos: 1
Respuesta: Invocar método static con reflection

qué va
Código PHP:
class paco{static function pedro(){echo "paco::pedro";}}
call_user_func("paco::pedro"); 
da esto:
Cita:
Warning: call_user_func(paco::pedro) [function.call-user-func]: Unable to call paco::pedro() in /home/uml/index.php on line 7
probé también call_user_method, y lo mismo. ¿alguna idea más?
__________________
Mi página personal: Julián Urbano
  #4 (permalink)  
Antiguo 31/07/2008, 04:18
Avatar de caerolus  
Fecha de Ingreso: agosto-2004
Ubicación: Madrid, España
Mensajes: 280
Antigüedad: 19 años, 8 meses
Puntos: 1
Respuesta: Invocar método static con reflection

Vale, en la documentación pone que esto
Código PHP:
call_user_func("paco::pedro"); 
debería funcionar, y no lo hace. Sin embargo, esto sí que funciona:
Código PHP:
call_user_func(array("paco","pedro")); 
.
Gracias
__________________
Mi página personal: Julián Urbano
  #5 (permalink)  
Antiguo 31/07/2008, 08:15
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Invocar método static con reflection

Mmm según en la documentación dice que los tipos de callback para estaticos debe de ser array, por lo que con :: no te sirve.

Saludos.
  #6 (permalink)  
Antiguo 31/07/2008, 08:24
 
Fecha de Ingreso: noviembre-2003
Mensajes: 798
Antigüedad: 20 años, 5 meses
Puntos: 8
Respuesta: Invocar método static con reflection

Código PHP:
// Tipo 4: Llamada a un método estático de clase (A partir de PHP 5.2.3)
call_user_func('MiClase::miMetodoDeRetorno'); 
Ojo: A partir de PHP 5.2.3.
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 00:37.