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

PHP OO Agregar método mágico a una clase desde fuera.

Estas en el tema de Agregar método mágico a una clase desde fuera. en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Hola mis queridos "wachiturros" , tengo una pequeña duda, quería saber si es posible agregar y/o definir un método mágico a una clase desde fuera ...
  #1 (permalink)  
Antiguo 14/07/2012, 00:21
 
Fecha de Ingreso: enero-2009
Mensajes: 14
Antigüedad: 15 años, 4 meses
Puntos: 1
Pregunta Agregar método mágico a una clase desde fuera.

Hola mis queridos "wachiturros" , tengo una pequeña duda, quería saber si es posible agregar y/o definir un método mágico a una clase desde fuera de ella??.

He visto que es posible hacerlo con un método "normal", de la siguiente manera:

$instancia = new class();
$instancia->test = function()
{
// código
};

y después llamarla así :

call_user_func($instancia->test, $instancia);

Hasta ahí todo bien, pero ... es posible definir un método mágico de ésta forma? y sin la necesidad de llamarla explícitamente??

Bueno, esa es mi consulta.

Saludos a todos

Última edición por donrito; 14/07/2012 a las 00:41
  #2 (permalink)  
Antiguo 14/07/2012, 07:29
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Agregar método mágico a una clase desde fuera.

es que esto no es un método
Código PHP:
Ver original
  1. $instancia->test = function() {
  2.     // código
  3. };
es un closure revisa un poco su uso y para que fueron pensadas, saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way

Etiquetas: clase, class
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 18:29.