Código PHP:
class myClass {
public function func() { return [aquí el nombre de la función que llama]; }
public static function caller() { echo self::func(); }
}
myClass::caller();
#SALIDA: caller
Saludos!
| |||
Saber qué función llama a otra Hola foreros, quisiera saber si hay alguna forma de saber el nombre de la función que está llamando a otra dentro de una clase, ejemplo: Código PHP: Saludos! Última edición por de-troit; 15/07/2011 a las 11:23 |
| |||
Respuesta: Saber qué función llama a otra Descubrí esta forma, pero la verdad creo que la función debug_backtrace ocupa muchos recursos obteniendo otra información además de la función desde la que fué llamada la función en cuestión. La verdad es que me gustaría obtener de forma inmediata la función desde la que es llamada, algo así como un calledBy(); Existe tal forma? O alguna solución mejor a la que tengo? Saludos! Código PHP: |
| ||||
Respuesta: Saber qué función llama a otra Hice una edición.
__________________ Verifica antes de preguntar. Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos |
| ||||
Respuesta: Saber qué función llama a otra De hecho yo considero que es mejor con debug_backtrace().
__________________ Y U NO RTFM? щ(ºдºщ) No atiendo por MP nada que no sea personal. |
| ||||
Respuesta: Saber qué función llama a otra Bueno si es para debuguear sí, pero para llamar un método porque quiere hacer algo antes de cada método creo que lo mejor es usar los métodos mágicos. Digo si es para debuguear lo mejor es lo que tu dices
__________________ Verifica antes de preguntar. Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos |
| |||
Respuesta: Saber qué función llama a otra No entiendo el propósito de la función que creaste. Eso retorna el nombre de la función que llama a la función en cuestión? Me podrías dar una breve explicación? Muchas gracias :) |
| ||||
Respuesta: Saber qué función llama a otra ¿Pero no acabas de indicar que quieres que te diga la función que estás llamando? Ya me perdí con lo que quieres hacer
__________________ Verifica antes de preguntar. Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos |
| |||
Respuesta: Saber qué función llama a otra Cita: No es para debuguear, lo que pasa es que hice una clase que facilita el uso de base de datos, en donde a través de un array estático se pueden asignar distintos mensajes para los errores, se puede asignar un mensaje para cada método. Cada uno de estos métodos llama a la función "query" donde se gestionan los errores, entonces por eso necesito saber qué función llama a query para mostrar el mensaje de error correspondiente a la situación. Me explico?Muchas gracias ;) |
| |||
Respuesta: Saber qué función llama a otra Quiero saber el nombre de la función que está llamando a la función que me importa, ejemplo si la función llamador llama a método, quiero que dentro de la función método pueda saber que la función que la llamó es llamador. Eso es. |
| |||
Respuesta: Saber qué función llama a otra Cita: Lo que pasa es que el número de parámetros no es exacto siempre, derrepente una función puede recibir parámetros o no, en otros casos 1 o más.La solución que tengo por ahora, es que como la clase para su uso debe ser instanciada, asigno al objeto en cuestión (this) el nombre de la función que está llamando ahora y la obtengo en la otra función. Pero me gustaría saber si hay alguna forma de obtenerla directamente sin asignarlo al objeto una y otra vez. Saludos! |
| ||||
Respuesta: Saber qué función llama a otra Entonces yo no veo mal el uso de debug_backtrace(), digo, si contiene la información de la traza de ejecución pues a usarla!
__________________ Y U NO RTFM? щ(ºдºщ) No atiendo por MP nada que no sea personal. |
| |||
Respuesta: Saber qué función llama a otra Cita: Me parece buena opción, el problema es que también ofrece mucha más información por lo que mi respuesta demorará más sólo para obtener el nombre de la función, la idea es optimizar. Parece que no hay ninguna otra forma... por lo menos no he pillado nada en internet. Si llegas (llegan) a saber de algo me avisas (avisan) por favor.Saludos! |
| |||
Respuesta: Saber qué función llama a otra Al final tengo esto, lo dejo porsi alguien llega a necesitarlo: Código PHP: Pueden saber más acerca de esta función aquí: http://php.net/manual/en/function.debug-backtrace.php Sigo abierto a nuevas ideas para optimizar más. Saludos! |
Etiquetas: |