Experimentando la vida
Obtener el verdadero scope de un metodo en un objeto o clase PHP
La siguiente funcion soluciona el problema que tienen las funciones nativas de PHP para brindar informacion sobre metodos de Objetos o Clases.
La misma permite conocer si un metodo existe y a la vez, si es un metodo privado o publico.
Los valores que devuelve son:
0 Si el metodo no existe
1 Si el metodo existe pero es privado
2 Si el metodo existe y es publico
El codigo es el siguiente y espero que les sirva
/** * @name Get Method Scope * @param mixed $class ClassName u Object * @param string $method * @return integer * * @author Cristián Pérez * * $class puede ser un objeto tambien * La funcion devuelve * 0: Si el metodo o la clase (u objeto) no existen * 1: Si el metodo existe pero es privado * 2: Si el metodo existe y es publico! * **/ function method_scope ($class, $method) { $all = (array)get_class_methods ($class); if (! in_array ($method, $all)) { if (method_exists ($class, $method)) return 1; //Private return 0; //It doesn't exists } return 2; //Public }
Ejemplo de Implementacion:
$scope = method_scope ($objeto, "miMetodo"); if ($scope == 2) { echo 'El metodo es Publico'; }
Saludos
| Imprimir artículo | Este artículo fue publicado por Cristián el 19 febrero 2010 a las 17:47, y está archivado en php. Sigue las respuestas a esta entrada a través de RSS 2.0. Puedes dejar un comentario o enviar un trackback desde tu propio sitio. |