Non hanno generato Eccezione perché è necessario mantenere questa funzione compatibile all'indietro. Non era presente alcuna eccezione nelle versioni precedenti di PHP, PHP < 5.
Il tipo di ritorno booleano era "riservato" per il rapporto di errore della funzione. Quello che devi fare è scoprire perché la funzione fallirebbe. Immagino che l'unica ragione per cui fallirebbe è per argomenti non validi.
Forse wraping in una chiamata sicura sarebbe fare quello che vuoi:
function safe_call_user_func()
{
$nargs = func_num_args();
$args = func_get_args();
if ($nargs == 0)
throw new RuntimeException('Require at least the callback param');
if (!is_callable($args[0])
throw new InvalidArgumentException('Callback param is invalid');
return call_user_func_array(array_shift($args), $args);
}
Inoltre, giuro ho provato a cercare questo e proprio non riuscivo a trovare le parole magiche per arrivare là. Guidarmi ad una domanda appropriata sarebbe fantastico se lo sapessi. –
Puoi testare prima con ['is_callable'] (http://www.php.net/manual/en/function.is-callable.php). – bfavaretto
Che cosa significa "non valido"? –