PHP 的数组是其最强大的数据构造之一,它可以用来存储多个值,并通过键来访问它们。
与其他措辞比较,PHP 数组的一个显著特点是它们是动态的,它们可以根据须要自动调度大小。
其余,PHP 数组中许可稠浊数据类型,这意味着您可以在同一数组中存储不同类型的值,例如整数、字符串、布尔等。

其余,与一些编程措辞不同,PHP 中的数组是内部实现为哈希表,这意味着它们可以快速地进行查找和插入操作。
此外,PHP 数组中还有许多便于利用和操作的内置函数和方法。

如果我说你不会创建PHP的数组,你可能会以为可笑,难道我纵横PHP这些年,连个PHP入门级特性都不知道,让我我随随便便创建个数组你看:

php数组创建嘿嘿你可能不知道PHP若何创立数组 Docker

基本的数组

这是一个基本的数组,虽然有不同的写法,但它实际上都是一样:

$list = [];$list = array();

这样一个数组创建之后,可以在里面存任何东西,一个数字或一个工具。

这没有什么问题,除了未便利开拓以外,既不能通过IDE去智能提示,开拓者也无法预估里面的内容。

但又能在呢么办呢?PHP并不像JAVA等显示的定义数组:

List<User> users = new ArrayList<>();

但实在是有方法的,利用 PHPStan 或 Psalm 等代码剖析工具的规范,我们也可以定义出有构造的数组。

定义列表

比如我们定义一个列表,实在便是利用phpdoc这样的规范,定义出变量的数据格式。

/ @var array<string, User> $users /$users = [ &#39;jesus' => new User('Jesus Valera'), 'chema' => new User('Chema Valera'),];$userJesus = $users['jesus'];$userChema = $users['chema'];$users[0]; # ERROR: "Offset 0 does not exist on array<string, User>"---/ @var list<User> $users /$users = [ ... ];$firstUser = reset($users);$lastUser = end($users);定义工具

我们也可以定义一个工具构造的数组。

/ @var array{id:int, birthdate:DateTimeImmutable} /$additionalInfo = [ ... ];$id = $additionalInfo['id']; # int$birthdate = $additionalInfo['birthdate']; # DateTimeImmutable繁芜的组合

基于这种做法,我们可以定义出一个繁芜的数组构造。

/ @var list< array{ uuid?: string, content: array{name:string, foo:?stdClass}, } > $array /$array = [ 0 => [ 'uuid' => 'XXXX-XXX-XXX-XXXX', 'content' => [ 'name' => 'str', 'foo' => null, ], ], 1 => [ 'content' => [ 'name' => 'str', 'foo' => new stdClass(), ], ], // ...];闲着蛋疼繁芜化?

可能会有声音说,这是闲着没事找麻烦,乃至是“丧失落了PHP的传统搞繁芜化”。
我不会去理会这些声音,现在我也开始在我的代码里做这些事情,由于现在PHP做的项目太繁芜了,动辄几十乃至几百个表,利用模型等文件就还好,如果是一些繁芜的数据构造,没有任何的显示定义,开拓的效率实在会受到影响的。

利用这些 PHP 注释有很多好处,不仅可以为开拓职员供应更好的数组构造内容,而且 IDE 会在剖析单个元素时智能提示!

请把稳,注释是代码的一部分,是项目的一部分,虽然在实行的时候会跳过它。

原文标题:嘿嘿,你可能不知道PHP如何创建数组

原文地址:https://phpreturn.com/index/a643bfc1bdc49d.html

原文平台:PHP武器库

版权声明:本文由phpreturn.com(PHP武器库官网)原创和首发,所有权利归phpreturn(PHP武器库)所有,本站许可任何形式的转载/引用文章,但必须同时注明出处。