Automattic\WooCommerce\Utilities
ArrayUtil::get_selector_callback
Helper function to generate a callback which can be executed on an array to select a value from each item.
Метод класса: ArrayUtil{}
Хуков нет.
Возвращает
\Closure. Callback to select the value.
Использование
$result = ArrayUtil::get_selector_callback( $selector_name, $selector_type ): \Closure;
- $selector_name(строка) (обязательный)
- Field/property/method name to select.
- $selector_type(int)
- Selector type.
По умолчанию:self::SELECT_BY_AUTO
Код ArrayUtil::get_selector_callback() ArrayUtil::get selector callback WC 11.1.2
private static function get_selector_callback( string $selector_name, int $selector_type = self::SELECT_BY_AUTO ): \Closure {
if ( self::SELECT_BY_OBJECT_METHOD === $selector_type ) {
$callback = function ( $item ) use ( $selector_name ) {
return $item->$selector_name();
};
} elseif ( self::SELECT_BY_OBJECT_PROPERTY === $selector_type ) {
$callback = function ( $item ) use ( $selector_name ) {
return $item->$selector_name;
};
} elseif ( self::SELECT_BY_ARRAY_KEY === $selector_type ) {
$callback = function ( $item ) use ( $selector_name ) {
return $item[ $selector_name ];
};
} else {
$callback = function ( $item ) use ( $selector_name ) {
if ( is_array( $item ) ) {
return $item[ $selector_name ];
} elseif ( method_exists( $item, $selector_name ) ) {
return $item->$selector_name();
} else {
return $item->$selector_name;
}
};
}
return $callback;
}