Verwenden Sie eine Variable, um eine PHP-function zu definieren

Ich möchte einige functionen dynamisch benennen, indem ich Variablen wie folgt verwende:

$thing = 'some_function'; function $thing() { echo 'hi!'; } 

Ich weiß, dass ich eine function mit einer Variablen wie dieser aufrufen kann:

 $something = 'function_exists'; if( $something('print_r') ) { echo 'Yep'; } 

Aber das obere Beispiel funktioniert nicht für mich.

Irgendwelche Ideen?

Ich benutze ein System mit Modulen. Jedes Modul ist ein einzelnes PHP-Skript, das aus einem bestimmten Ordner hinzugefügt oder entfernt werden kann.

Jedes Modul benötigt eine neue function, um es zu initialisieren. Ich globe für die Dateinamen, dann möchte ich eine Reihe von functionen, eine für jedes Modul, Schleife und erstellen.

Ich benutze ein vorhandenes System und kann die Modulbehandlung nicht neu schreiben.

Die Alternative wäre, alle Init-functionen einfach zu schreiben und sie hart zu codieren, aber wenn die Liste wächst, wächst auch der Code – und wenn ein Modul entfernt wird, werden Fehler geworfen.

    Was Sie tun können, ist

     $thing = 'some_function'; $$thing = function() { echo 'hi'; }; $some_function(); 

    In PHP <5.3 müssen Sie create_function anstelle der anonymen function verwenden :

     // Use this in < 5.3 $thing = 'some_function'; $$thing = create_function('', 'echo "hi";' ); $some_function(); 

    Das Definieren von functionen mit dynamischen Namen ist jedoch eine schlechte Idee. Erstellen Sie stattdessen ein Array von functionen, die Sie aufrufen, oder verwenden Sie Polymorphismus.