Arguments   A
last analyzed

Complexity

Total Complexity 2

Size/Duplication

Total Lines 24
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 3
Bugs 1 Features 0
Metric Value
eloc 10
c 3
b 1
f 0
dl 0
loc 24
ccs 10
cts 10
cp 1
rs 10
wmc 2

1 Method

Rating   Name   Duplication   Size   Complexity  
A flip() 0 17 2
1
<?php
2
/**
3
 * @package   WPEmerge
4
 * @author    Atanas Angelov <[email protected]>
5
 * @copyright 2017-2019 Atanas Angelov
6
 * @license   https://www.gnu.org/licenses/gpl-2.0.html GPL-2.0
7
 * @link      https://wpemerge.com/
8
 */
9
10
namespace WPEmerge\Helpers;
11
12
/**
13
 * A collection of tools dealing with urls
14
 */
15
class Arguments {
16
	/**
17
	 * Get a closure which will flip preceding optional arguments around.
18
	 * @example list( $argument1, $argument2 ) = Arguments::flip( $argument1, $argument2 );
19
	 *
20
	 * @return array
21
	 */
22 1
	public static function flip() {
23 1
		$arguments = func_get_args();
24 1
		$first_null = array_search( null, $arguments, true );
25
26 1
		if ( $first_null === false ) {
27 1
			return $arguments;
28
		}
29
30
		// Support integer keys only.
31 1
		$first_null = (int) $first_null;
32
33 1
		$arguments = array_values( array_merge(
34 1
			array_slice( $arguments, $first_null ),
35 1
			array_slice( $arguments, 0, $first_null )
36
		) );
37
38 1
		return $arguments;
39
	}
40
}
41