Ho un'istruzione switch
switch ( $id ) {
case 'abc': return 'Animal';
case 'xyz': return 'Human';
//many more
}
Sto restituendo i nomi delle classi e li uso per chiamare alcune delle loro funzioni statiche usando call_user_func (). Invece posso anche creare un oggetto di quella classe, restituirlo e quindi chiamare la funzione statica da quell'oggetto come $ object :: method ($ param)
switch ( $id ) {
case 'abc': return new Animal;
case 'xyz': return new Human;
//many more
}
In che modo è efficiente? Per rendere questa domanda più ampia: ho classi che hanno per lo più tutti i metodi statici in questo momento, metterle in classi è una specie di idea di raggruppamento qui (per esempio la struttura della tabella DB di Animal è data dalla classe Animal e così per la classe Human). Ho bisogno di accedere a molte funzioni da queste classi, quindi lo switch deve darmi accesso alla classe