PHP 7.3 中的数组外环操作函数

翻译 Summer ⋅ 于 3周前 ⋅ 最后回复由 Jaeger 3周前 ⋅ 520 阅读 ⋅ 原文地址

站点的翻译文章创建时,您将第一时间收到通知。

这是一篇社区协同翻译的文章,已完成翻译,更多信息请点击 协同翻译介绍

file

PHP 7.3 引入了两个新的函数用于处理数组的 外环 键。 RFC 提议了 包含键和值在内的四个新函数,但只有数组键函数被接受:

  • array_key_first() (接受)
  • array_key_last() (接受)
  • array_value_first() (拒绝)
  • array_value_last() (拒绝)

虽然外部数组的值函数被拒绝了, 至少有新函数可用于获取数组的外键。

人来人往 翻译于 3周前

被接受的获取数组键的新函数

首先,让我们看一下 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);
benettzhang 翻译于 3周前

被拒绝的获取函数值的方法

我想再次强调一下,不接受数组值函数获得了 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 ,这会引起歧义。

benettzhang 翻译于 3周前

结论

让我感兴趣的是 PHP 从第七版开始并没有一种方法来做这些事情,即使值函数被拒绝了,还是很开心见到 array_key_first()array_key_last() 函数的接受和实现。

你可以了解更多关于 数组键 RFC 的知识并查看 GitHub 上的 arraykey* 函数的 PHP 7.3 实现

人来人往 翻译于 3周前

原文地址:https://laravel-news.com/outer-array-fun...

译文地址:https://laravel-china.org/topics/14766/t...


本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。

回复数量: 2
  • Nick @

    原文链接打开是一张图片?

    3周前
  • 这几个函数什么场景下会用到?

    3周前
您需要登陆以后才能留下评论!

Composer 中国全量镜像

Top 250 扩展包

Lumen 中文文档

Laravel 速查表

Laravel 中文文档

Laravel 项目开发规范

Laravel 开发环境部署

Composer 中文文档

Elasticsearch-PHP 中文文档

Lumen 中文文档

GraphQL PHP 中文文档

社区文档撰写指南

TDD 构建 Laravel 论坛笔记

PHP PSR 标准规范

PHP 设计模式全集

Dingo API 中文文档