- print_r: documentation ( source)
- is_callable: documentation ( source)
<?php
function event($name,$cb = null){
static $e = array();
if ( is_callable($cb) ){
empty( $e[$name] ) ? $e[$name] = array($cb) : $e[$name][] = $cb;
} elseif ( false === empty($e[$name]) ) {
$a = is_array($cb) ? $cb : array();
foreach ($e[$name] as $eh) call_user_func_array($eh,$a);
}
}
// Add a foo event handler
event('foo',function(){
print_r(func_get_args());
});
// Add another foo event handler
event('foo',function(){
echo 'Hello, friend!';
});
// Call foo event with parameters
event('foo',[1,2]);
// Call bar event (does nothing)
event('bar');