本文整理汇总了PHP中Hooks::actions方法的典型用法代码示例。如果您正苦于以下问题:PHP Hooks::actions方法的具体用法?PHP Hooks::actions怎么用?PHP Hooks::actions使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Hooks
的用法示例。
在下文中一共展示了Hooks::actions方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: doActionRefArray
/**
* doActionRefArray Execute functions hooked on a specific action hook, specifying arguments in an array.
* @access public
* @since 0.1
* @param string $tag The name of the action to be executed.
* @param array $args The arguments supplied to the functions hooked to <tt>$tag</tt>
* @return null Will return null if $tag does not exist in $filter array
*/
public static function doActionRefArray($tag, $args)
{
if (!isset(self::$actions)) {
self::$actions = array();
}
if (!isset(self::$actions[$tag])) {
self::$actions[$tag] = 1;
} else {
++self::$actions[$tag];
}
// Do 'all' actions first
if (isset(self::$filters['all'])) {
self::$currentFilter[] = $tag;
$all_args = func_get_args();
self::$__callAllHook($all_args);
}
if (!isset(self::$filters[$tag])) {
if (isset(self::$filters['all'])) {
array_pop(self::$currentFilter);
}
return;
}
if (!isset(self::$filters['all'])) {
self::$currentFilter[] = $tag;
}
// Sort
if (!isset($mergedFilters[$tag])) {
ksort(self::$filters[$tag]);
$mergedFilters[$tag] = true;
}
reset(self::$filters[$tag]);
do {
foreach ((array) current(self::$filters[$tag]) as $the_) {
if (!is_null($the_['function'])) {
call_user_func_array($the_['function'], array_slice($args, 0, (int) $the_['accepted_args']));
}
}
} while (next(self::$filters[$tag]) !== false);
array_pop(self::$currentFilter);
}