He oído hablar de get_class_methods()
, pero ¿hay alguna manera en PHP para reunir una matriz de todos los métodos públicos de una clase en particular?PHP cómo enumerar todas las funciones públicas de la clase
Respuesta
Sí puede, eche un vistazo a las clases/métodos de reflexión.
http://php.net/manual/en/book.reflection.php y http://www.php.net/manual/en/reflectionclass.getmethods.php
$class = new ReflectionClass('Apple');
$methods = $class->getMethods(ReflectionMethod::IS_PUBLIC);
var_dump($methods);
estoy cavando la simplicidad causada por el uso de la estática en lugar de pasar por la creación de instancias de Reflectionmethod – Kristian
¿Has probado de esta manera?
$class_methods = get_class_methods(new myclass());
foreach ($class_methods as $method_name) {
echo "$method_name\n";
}
Creo que Kristian está pidiendo específicamente que se enumeren los métodos públicos. – Stegrex
Después de conseguir todos los métodos con get_class_methods($theClass)
puede recorrer a través de ellos con algo como esto:
foreach ($methods as $method) {
$reflect = new ReflectionMethod($theClass, $method);
if ($reflect->isPublic()) {
}
}
Como get_class_methods()
margen sensible, se puede obtener toda los métodos públicos de una clase simplemente llamando a la función desde fuera del alcance de la clase:
lo tanto, tomar esta clase:
class Foo {
private function bar() {
var_dump(get_class_methods($this));
}
public function baz() {}
public function __construct() {
$this->bar();
}
}
var_dump(get_class_methods('Foo'));
dará salida a lo siguiente:
array
0 => string 'baz' (length=3)
1 => string '__construct' (length=11)
Mientras una llamada desde el interior del ámbito de la clase (new Foo;
) retornaría:
array
0 => string 'bar' (length=3)
1 => string 'baz' (length=3)
2 => string '__construct' (length=11)
- 1. Cómo enumerar todas las propiedades de clase
- 2. ¿Cómo enumerar todas las funciones en un módulo de Python?
- 3. ¿Cómo enumerar todas las etiquetas de Git?
- 4. ¿Es posible enumerar todas las variables globales en PHP?
- 5. PHP: Wrap todas las funciones de una clase en una subclase
- 6. Buscar Funciones públicas no utilizadas
- 7. ¿Listar todas las funciones integradas en javascript?
- 8. Servidor SQL: cómo enumerar todas las funciones/procedimientos/objetos de CLR para el ensamblaje
- 9. ¿Cómo obtener propiedades públicas de una clase?
- 10. cómo obtener todas las subclases de una clase en php
- 11. ¿Cómo enumerar todas las interfaces de red disponibles?
- 12. ¿Cómo enumerar todas las ventanas dentro de un proceso?
- 13. ¿Cómo enumerar todas las propiedades de un objeto Powershell?
- 14. Cómo enumerar todas las variables de entorno en Java
- 15. ¿Listado de funciones php en la parte superior del archivo? (o, ¿cómo saltar rápidamente a las funciones php?)
- 16. Cómo enumerar todas las variables de enlace con GroovyShell
- 17. ¿Cómo enumerar todas las propiedades de dependencia del control?
- 18. ¿Cómo puedo enumerar todas las columnas de una tabla?
- 19. ¿Cómo enumerar todas las variables de entorno en Vim?
- 20. ¿Cómo evito las descargas públicas de archivos usando php?
- 21. ¿Debo declarar todas las funciones virtuales en una clase base?
- 22. herramienta de Linux para enumerar todas las funciones en un archivo de origen?
- 23. ¿Cómo puedo enumerar todas las propiedades del objeto Math?
- 24. ¿Cómo enumerar todas las actividades expuestas por una aplicación?
- 25. Constantes de clase PHP: ¿públicas, privadas o protegidas?
- 26. ¿Enumerar/iterar todas las vistas en la actividad?
- 27. Anulación de las funciones virtuales públicas con funciones privadas en C++
- 28. Groovy Listar todas las propiedades para la clase
- 29. Enumerar todas las clases que heredan de una clase/interfaz específica
- 30. Obtenga todas las instancias de una clase en PHP
Uhm, 'get_class_methods ($ class)' * es * una forma de reunir una matriz de todos los métodos públicos de una clase particular ... –
si quieres usar 'get_class_meth ods' para recuperar SOLO los métodos públicos, se debe usar fuera de clase ... – Federkun
get_class_methods ($ class) devuelve todos los métodos que son públicos o no tienen una palabra clave. Por lo tanto, no se devolverán los métodos privados – daslicht