12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- <?php
- namespace YahnisElsts\PluginUpdateChecker\v5p1;
- if ( !class_exists(Utils::class, false) ):
- class Utils {
- /**
- * Get a value from a nested array or object based on a path.
- *
- * @param array|object|null $collection Get an entry from this array.
- * @param array|string $path A list of array keys in hierarchy order, or a string path like "foo.bar.baz".
- * @param mixed $default The value to return if the specified path is not found.
- * @param string $separator Path element separator. Only applies to string paths.
- * @return mixed
- */
- public static function get($collection, $path, $default = null, $separator = '.') {
- if ( is_string($path) ) {
- $path = explode($separator, $path);
- }
- //Follow the $path into $input as far as possible.
- $currentValue = $collection;
- foreach ($path as $node) {
- if ( is_array($currentValue) && isset($currentValue[$node]) ) {
- $currentValue = $currentValue[$node];
- } else if ( is_object($currentValue) && isset($currentValue->$node) ) {
- $currentValue = $currentValue->$node;
- } else {
- return $default;
- }
- }
- return $currentValue;
- }
- /**
- * Get the first array element that is not empty.
- *
- * @param array $values
- * @param mixed|null $default Returns this value if there are no non-empty elements.
- * @return mixed|null
- */
- public static function findNotEmpty($values, $default = null) {
- if ( empty($values) ) {
- return $default;
- }
- foreach ($values as $value) {
- if ( !empty($value) ) {
- return $value;
- }
- }
- return $default;
- }
- /**
- * Check if the input string starts with the specified prefix.
- *
- * @param string $input
- * @param string $prefix
- * @return bool
- */
- public static function startsWith($input, $prefix) {
- $length = strlen($prefix);
- return (substr($input, 0, $length) === $prefix);
- }
- }
- endif;
|