Foros del Web » Programando para Internet » PHP »

Como saber cuando una función la han llamado de su propia clase o de afuera

Estas en el tema de Como saber cuando una función la han llamado de su propia clase o de afuera en el foro de PHP en Foros del Web. Hola amigos, traigo una pequeña duda, es posible saber cuando una función es llamada por otra función de su misma clase? y cuando es llamada ...
  #1 (permalink)  
Antiguo 16/02/2010, 09:58
Avatar de JALF  
Fecha de Ingreso: septiembre-2004
Ubicación: Cali - Colombia
Mensajes: 634
Antigüedad: 20 años, 2 meses
Puntos: 2
Como saber cuando una función la han llamado de su propia clase o de afuera

Hola amigos, traigo una pequeña duda, es posible saber cuando una función es llamada por otra función de su misma clase? y cuando es llamada externamente?

Voy a dar un ejemplo sencillo con código para hacerme entender

Código PHP:
class saludo {
  public function 
hola1($mensaje=NULL) {
    echo 
"hola que tal";
    echo 
$mensaje;
  }
  public function 
hola2() {
    
//llamada por fuera
    
return "hola como estas";
    
//llamada en otra función de la misma clase
    
return "hola carebola";
  }
}

// AQUI LLAMAMOS UNA FUNCION DESDE AFUERA NORMALITO
$saludar = new saludo();
$saludar->hola1();
echo 
$saludar->hola2();
//RESULTADO
// hola que tal
// hola como estas

// AQUI LLAMAMOS UNA FUNCION DE LA CLASE DENTRO DE OTRA FUNCION DE LA MISMA CLASE
$saludar = new saludo();
$saludar->hola1($saludar->hola2());
//RESULTADO
// hola que tal
// hola carebola 
Y es en el segundo ejemplo donde me gustaría saber en la función hola1() que se ha llamado una función de la misma clase pero dentro de la función hola1()

Esto es con el fin de que si utilizo una función por fuera (como siempre se utiliza) entonces me imprima un resultado, pero si la función es llamada en otra función de la misma clase entonces que haga otro proceso.

Creo que esa detección en el caso de este ejemplo se hace en hola2() pero..... no sé como hacerlo y no sé si sea posible hacer eso.

Salu2 y espero que me puedan dar una manito.
__________________
Ubuntu User # 15554
http://dubaiphp.wordpress.com/ -Mi vida de desarrollo, juegos y algo más en un Blog-
  #2 (permalink)  
Antiguo 16/02/2010, 10:40
Avatar de wpersei  
Fecha de Ingreso: septiembre-2006
Ubicación: Bogota
Mensajes: 189
Antigüedad: 18 años, 2 meses
Puntos: 1
Respuesta: Como saber cuando una función la han llamado de su propia clase o de afuer

Me causa mucha curiocidad saber porque querrias hacer eso?

de todas formas lo qeu se me ocurre es que le agregues un parametro al metodo donde le coloques un valor si es desde adentro de la clase u otro si llamas el metodo desde afuera y de esa forma controlas lo que necesitas


saludos
__________________
www.ogallardo.com - Mi blog
  #3 (permalink)  
Antiguo 16/02/2010, 12:38
Avatar de JALF  
Fecha de Ingreso: septiembre-2004
Ubicación: Cali - Colombia
Mensajes: 634
Antigüedad: 20 años, 2 meses
Puntos: 2
Respuesta: Como saber cuando una función la han llamado de su propia clase o de afuer

Hola

Si eso que comentas es la solución que pensé en un primer instante, pero me gustaría que eso fuese totalmente trasparente para quien programa :P (si se puede, sino toca entonces pasar algún parámetro que me indique eso)

Lo que pasa es que me estoy escribiendo un clase con la que se pueda escribir XHTML así no tendría que mezclarle código XHTML con código PHP

La idea es para que si la función es llamada desde afuera entonces devuelva la cadena resultante, pero si es llamada desde otra función desde la misma clase entonces que no devuelva esa cadena sino que la acumule para al final devolver una sola cadena resultante.
__________________
Ubuntu User # 15554
http://dubaiphp.wordpress.com/ -Mi vida de desarrollo, juegos y algo más en un Blog-

Etiquetas: clase, cuando, llamado, propia
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:11.