if ( is_string( $callback ) ) {
if ( is_object( $callback ) ) {
// Closures are currently implemented as objects.
$callback = array( $callback, '' );
$callback = (array) $callback;
if ( is_object( $callback[0] ) ) {
return spl_object_hash( $callback[0] ) . $callback[1];
} elseif ( is_string( $callback[0] ) ) {
return $callback[0] . '::' . $callback[1];