_wp_filter_build_unique_id()WP 2.2.3

Builds a unique string ID for a hook callback function.

Functions and static method callbacks are just returned as strings and shouldn't have any speed penalty.

Internal function — this function is designed to be used by the kernel itself. It is not recommended to use this function in your code.

No Hooks.

Returns

String|null. Unique function ID for usage as array key. Null if a valid $callback is not passed.

Usage

_wp_filter_build_unique_id( $hook_name, $callback, $priority );
$hook_name(string) (required)
Unused. The name of the filter to build ID for.
$callback(callable|string|array) (required)
The callback to generate ID for. The callback may or may not exist.
$priority(int) (required)
Unused. The order in which the functions associated with a particular action are executed.

Changelog

Since 2.2.3 Introduced.
Since 5.3.0 Removed workarounds for spl_object_hash(). (hook_name) $priority are no longer used, and the function always returns a string.

_wp_filter_build_unique_id() code WP 7.0

function _wp_filter_build_unique_id( $hook_name, $callback, $priority ) {
	if ( is_string( $callback ) ) {
		return $callback;
	}

	if ( is_object( $callback ) ) {
		// Closures are currently implemented as objects.
		$callback = array( $callback, '' );
	} else {
		$callback = (array) $callback;
	}

	if ( is_object( $callback[0] ) ) {
		// Object class calling.
		return spl_object_hash( $callback[0] ) . $callback[1];
	} elseif ( is_string( $callback[0] ) ) {
		// Static calling.
		return $callback[0] . '::' . $callback[1];
	}

	return null;
}