PHP 7.3 中的数组外环操作函数
PHP 7.3 引入了两个新的函数用于处理数组的 外环
键。 RFC 提议了 包含键和值在内的四个新函数,但只有数组键函数被接受:
array_key_first()
(接受)array_key_last()
(接受)array_value_first()
(拒绝)array_value_last()
(拒绝)
虽然外部数组的值函数被拒绝了, 至少有新函数可用于获取数组的外键。
被接受的获取数组键的新函数
首先,让我们看一下 array_key*
方法。这些方法允许你分别获取数组的第一个和最后一个键。
对于关联数组,下面代码片段有使用实例:
$array = ['a' => 1, 'b' => 2, 'c' => 3];
$firstKey = array_key_first($array);
$lastKey = array_key_last($array);
assert($firstKey === 'a');
assert($lastKey === 'c');
对于键为整数的数组:
$array = [1 => 'a', 2 => 'b', 3 => 'c'];
$firstKey = array_key_first($array);
$lastKey = array_key_last($array);
assert($firstKey === 1);
assert($lastKey === 3);
最后, 空数组方法将会返回 null
:
$array = [];
$firstKey = array_key_first($array);
$lastKey = array_key_last($array);
assert($firstKey === null);
assert($lastKey === null);
被拒绝的获取函数值的方法
我想再次强调一下,不接受数组值函数获得了 18 票,接受数组值函数获得了 15 票,因为投票原则是少数服从多数,所以函数值函数被拒绝了。
我打赌你几乎可以在不看任何例子情况下预测这些函数是如何工作,这对我来说真棒!
首先,让我看一下获取关联数组的第一个值和最后一个值的例子:
$array = ['a' => 1, 'b' => 2, 'c' => 3];
$firstValue = array_value_first($array);
$lastValue = array_value_last($array);
assert($firstValue === 1);
assert($lastValue === 3);
接下来,获取索引数组值的例子:
// usage of a numeric array
$array = [1 => 'a', 2 => 'b', 3 => 'c'];
$firstValue = array_value_first($array);
$lastValue = array_value_last($array);
assert($firstValue === 'a');
assert($lastValue === 'c');
最后,获取空数组值将会返回 null
:
$array = [];
$firstValue = array_value_first($array);
$lastValue = array_value_last($array);
assert($firstValue === null);
assert($lastValue === null);
我不是十分确定为什么投票会失败,但是从 GitHub 的评论中可以推测,其中一个原因可能是使用函数获取空数组的值将会返回 null
,这会引起歧义。
结论
让我感兴趣的是 PHP 从第七版开始并没有一种方法来做这些事情,即使值函数被拒绝了,还是很开心见到 array_key_first()
和 array_key_last()
函数的接受和实现。
你可以了解更多关于 数组键 RFC 的知识并查看 GitHub 上的 arraykey* 函数的 PHP 7.3 实现 。
本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。
推荐文章: