$val) { if ($val[2] === null or $sender == $val[2]) { call_user_func_array(array($val[0], $val[1]), array($signal, &$params)); } } } } /** * Connect to a signal. * * @param string Name of the signal. * @param array array('class', 'method') handling the signal. * @param string Optional sender filtering. */ public static function connect($signal, $who, $sender=null) { if (!isset($GLOBALS['_PX_signal'][$signal])) { $GLOBALS['_PX_signal'][$signal] = array(); } $GLOBALS['_PX_signal'][$signal][] = array($who[0], $who[1], $sender); } }