_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.

Return

String. Unique function ID for usage as array key.

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 6.5.2

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];
	}
}