Sto programmando un'app (php) che richiede una lunga lista di funzioni simili ma diverse, chiamate da un set di chiavi :
$functions = [
"do this" => function() {
// does this
},
"do that" => function() {
// does that
}
]
etc.
Ho scelto di posizionare le funzioni simili in un array perché non sono simili sufficienti - ottenere lo stesso risultato con un'unica grande funzione che è piena di istruzioni condizionali non funzionerà. E devo essere in grado di chiamarli solo con il tasto , ad esempio:
$program = ["do this", "do that", "do this"];
foreach ($program as $k => $v) {
$functions[$v]();
}
Questa struttura di funzioni-array sta causando molti problemi, ad esempio ho difficoltà a chiamare una funzione di matrice da un'altra funzione di matrice , ad es. questo non funziona:
"do that" => function() {
$functions["do this"]();
}
né questo:
"do that" => function() {
global $functions;
$functions["do this"]();
}
o questo:
"do that" => function($functions) {
$functions["do this"]();
}
$functions["do that"]($functions);
Credo che potrei avere una funzione gigante con una lunga istruzione :
function similar_functions($key) {
switch ($key) {
case "do this":
// does this
break;
case "do that":
// does that
break;
}
}
Ma quello non sembra davvero una buona pratica. O forse lo è?
Quindi, quali sono le mie alternative? Devo andare con la struttura degli switch? O c'è un'altra soluzione migliore?