is_callable($callback, false, $callableName)

$callback è una stringa contenente il nome della funzione o un array che ha in posizione 0 il nome della classe (per metodi statici) o un oggetto e il posizione 1 il nome del metodo

Il false indica che deve esistere la funzione/metodo. Se true controlla solo che il nome sia sintatticamente corretto per una funzione/metodo.

$callableName viene riempita con il nome 'completo' con cui testa la funzione. Per un metodo si ha sempre nome della classe::metodo (indipendentemente dal fatto che sia statico o meno), mentre per le funzioni si ha il nome della funzione.

Un esempio PHP 5.4
Codice PHP:
<?php
class foo{
    static function 
Pippo(){}
    public function 
Paperino(){}
}
function 
Topolino(){}

$obj = new foo();

$val is_callable([$obj,'Pippo'],false,$callableName)?'Si':'No';
echo 
"E' chiamabile $callableName$val
"
;

$val is_callable(['foo','Pippo'],false,$callableName)?'Si':'No';
echo 
"E' chiamabile $callableName$val
"
;

$val is_callable('Pippo',false,$callableName)?'Si':'No';
echo 
"E' chiamabile $callableName$val
"
;

$val is_callable([$obj,'Paperino'],false,$callableName)?'Si':'No';
echo 
"E' chiamabile $callableName$val
"
;

$val is_callable(['foo','Paperino'],false,$callableName)?'Si':'No';
echo 
"E' chiamabile $callableName$val
"
;

$val is_callable('Paperino',false,$callableName)?'Si':'No';
echo 
"E' chiamabile $callableName$val
"
;

$val is_callable(['fooA','Gastone'],false,$callableName)?'Si':'No';
echo 
"E' chiamabile $callableName$val
"
;

$val is_callable('Gastone',false,$callableName)?'Si':'No';
echo 
"E' chiamabile $callableName$val
"
;

$val is_callable('Topolino',false,$callableName)?'Si':'No';
echo 
"E' chiamabile $callableName$val
"
;

$val is_callable(['class','Gastone'],false,$callableName)?'Si':'No';
echo 
"E' chiamabile $callableName$val
"
;

$val is_callable(['class','Gastone'],true,$callableName)?'Si':'No';
echo 
"E' sintatticamente corretto $callableName$val
"
;

$val is_callable('Gastone',true,$callableName)?'Si':'No';
echo 
"E' sintatticamente corretto $callableName$val
"
;

?>
Produce
codice:
E' chiamabile foo::Pippo? Si
E' chiamabile foo::Pippo? Si
E' chiamabile Pippo? No
E' chiamabile foo::Paperino? Si
E' chiamabile foo::Paperino? Si
E' chiamabile Paperino? No
E' chiamabile fooA::Gastone? No
E' chiamabile Gastone? No
E' chiamabile Topolino? Si
E' chiamabile class::Gastone? No
E' sintatticamente corretto class::Gastone? Si
E' sintatticamente corretto Gastone? Si