Ho sentito parlare di get_class_methods()
ma c'è un modo in PHP per raccogliere una matrice di tutti i metodi pubblici da una particolare classe?PHP come elencare tutte le funzioni pubbliche della classe
risposta
Sì, è possibile dare un'occhiata alle classi/metodi di riflessione.
http://php.net/manual/en/book.reflection.php e http://www.php.net/manual/en/reflectionclass.getmethods.php
$class = new ReflectionClass('Apple');
$methods = $class->getMethods(ReflectionMethod::IS_PUBLIC);
var_dump($methods);
Sto scavando la semplicità che è causata dall'uso della statica piuttosto che passare attraverso l'istanza di Reflectionmethod – Kristian
Avete provato in questo modo?
$class_methods = get_class_methods(new myclass());
foreach ($class_methods as $method_name) {
echo "$method_name\n";
}
Penso che Kristian stia chiedendo specificatamente di elencare i metodi pubblici. – Stegrex
Dopo aver ottenuto tutti i metodi con get_class_methods($theClass)
si può ciclo attraverso di loro con qualcosa di simile:
foreach ($methods as $method) {
$reflect = new ReflectionMethod($theClass, $method);
if ($reflect->isPublic()) {
}
}
Come get_class_methods()
è sensibile ambito-, è possibile ottenere tutte i metodi pubblici di una classe chiamando semplicemente la funzione al di fuori dell'ambito della classe:
Quindi, prendete questa classe:
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'));
uscita volontà la seguente:
array
0 => string 'baz' (length=3)
1 => string '__construct' (length=11)
Durante una chiamata dall'interno del campo di applicazione della classe (new Foo;
) sarebbe tornato:
array
0 => string 'bar' (length=3)
1 => string 'baz' (length=3)
2 => string '__construct' (length=11)
- 1. Come elencare tutte le proprietà di classe
- 2. Come elencare le funzioni di un namespace?
- 3. Funzioni pubbliche rispetto alle aree pubbliche
- 4. PHP: Wrap tutte le funzioni di una classe in una sottoclasse
- 5. Come chiamare tutte le funzioni PHP di matrice
- 6. Elenca tutte le funzioni integrate in javascript?
- 7. come ottenere tutte le sottoclassi di una classe in php
- 8. Tcl domanda - come elencare le funzioni in un namespace
- 9. Come posso usare PHP per elencare tutte le date in un anno?
- 10. PHP: Come chiamare le funzioni della libreria standard
- 11. SQL Server: come elencare tutte le funzioni/procedure/oggetti CLR per il montaggio
- 12. Come posso elencare tutte le funzioni nel mio nodo js script?
- 13. Devo dichiarare tutte le funzioni virtuali in una classe base?
- 14. Come elencare tutte le classi conformi al protocollo in Swift?
- 15. come elencare tutte le sottodirectory in una directory
- 16. Come posso elencare tutte le proprietà dell'oggetto Math?
- 17. Come elencare tutte le lingue caricate da angular-translate
- 18. Come elencare tutte le date tra due date
- 19. Come elencare in modo programmatico tutte le proprietà definite?
- 20. Come elencare tutte le variabili di ambiente in Vim?
- 21. Come posso elencare tutte le unità mascherate di sistema?
- 22. Come elencare tutte le variabili nel contesto corrente in gdb?
- 23. Come posso elencare TUTTE le concessioni ricevute da un utente?
- 24. Come elencare tutte le voci JNDI in "java: global" namespace
- 25. Come elencare tutte le proprietà di un oggetto PowerShell?
- 26. Chiedi a GDB di elencare tutte le funzioni in un programma
- 27. Come AGGIORNARE tutte le colonne di un record senza dover elencare tutte le colonne
- 28. Come elencare tutte le classi sul percorso classe che implementa un determinato insieme di interfacce
- 29. rimuovere tutte le variabili tranne le funzioni
- 30. strumento linux per elencare tutte le funzioni in un file sorgente?
Uhm, 'get_class_methods ($ class)' * è * un modo per raccogliere una matrice di tutti i metodi pubblici di una particolare classe ... –
se si desidera utilizzare 'get_class_meth ods' per recuperare SOLO metodi pubblici, deve essere usato al di fuori della classe .. – Federkun
get_class_methods ($ class) restituisce tutti i metodi che sono pubblici o non hanno una parola chiave. Quindi, i metodi privati non saranno restituiti – daslicht