mirror of
https://github.com/gosticks/wordpress-develop.git
synced 2025-10-16 12:05:38 +00:00
PHP 7.3.0 introduced two new functions: `array_key_first()` and `array_key_last()`. These two functions return the first and last key of each array respectively, without affecting the internal state of the array. The polyfills make these two functions available for use in Core on PHP versions less than 7.3.0. Ref: * PHP RFC https://wiki.php.net/rfc/array_key_first_last * PHP manual `array_key_first()` https://www.php.net/manual/en/function.array-key-first.php * PHP manual `array_key_last()` https://www.php.net/manual/en/function.array-key-last.php Props desrosj, pbearne, costdev, hellofromTonya, ayeshrajans, manzoorwanijk, audrasjb, sergeybiryukov. Fixes #45055. git-svn-id: https://develop.svn.wordpress.org/trunk@52038 602fd350-edb4-49c9-b593-d223f7449a82
77 lines
1.5 KiB
PHP
77 lines
1.5 KiB
PHP
<?php
|
|
|
|
/**
|
|
* @group compat
|
|
*
|
|
* @covers ::array_key_first
|
|
*/
|
|
class Tests_Compat_arrayKeyFirst extends WP_UnitTestCase {
|
|
|
|
/**
|
|
* Test that array_key_first() is always available (either from PHP or WP).
|
|
* @ticket 45055
|
|
*/
|
|
public function test_array_key_first_availability() {
|
|
$this->assertTrue( function_exists( 'array_key_first' ) );
|
|
}
|
|
|
|
/**
|
|
* @dataProvider data_array_key_first
|
|
*
|
|
* @ticket 45055
|
|
*
|
|
* @param bool $expected The value of the key extracted to extracted from given array.
|
|
* @param array $arr The array to get first key from.
|
|
*/
|
|
public function test_array_key_first( $expected, $arr ) {
|
|
if ( ! function_exists( 'array_key_first' ) ) {
|
|
$this->markTestSkipped( 'array_key_first() is not available.' );
|
|
} else {
|
|
$this->assertSame(
|
|
$expected,
|
|
array_key_first( $arr )
|
|
);
|
|
}
|
|
|
|
}
|
|
|
|
/**
|
|
* Data provider.
|
|
*
|
|
* @return array[]
|
|
*/
|
|
public function data_array_key_first() {
|
|
return array(
|
|
'string key' => array(
|
|
'expected' => 'key1',
|
|
'arr' => array(
|
|
'key1' => 'val1',
|
|
'key2' => 'val2',
|
|
),
|
|
),
|
|
'int key' => array(
|
|
'expected' => 99,
|
|
'arr' => array(
|
|
99 => 'val1',
|
|
1 => 'val2',
|
|
),
|
|
),
|
|
'no key' => array(
|
|
'expected' => 0,
|
|
'arr' => array( 'val1', 'val2' ),
|
|
),
|
|
'multi array' => array(
|
|
'expected' => 99,
|
|
'arr' => array(
|
|
99 => array( 22 => 'val1' ),
|
|
1 => 'val2',
|
|
),
|
|
),
|
|
'empty array' => array(
|
|
'expected' => null,
|
|
'arr' => array(),
|
|
),
|
|
);
|
|
}
|
|
}
|