- is_callable: documentation ( source)
<?php
function event($name,$cb = null){
static $e = [];
if ( is_callable($cb) ){
empty( $e[$name] ) ? $e[$name] = [$cb] : $e[$name][] = $cb;
} elseif ( false === empty($e[$name]) ) {
$a = is_array($cb) ? $cb : [];
foreach ($e[$name] as $eh) call_user_func_array($eh,$a);
}
}