数组的简写:是否有像{}或[]这样的文字语法?


84

PHP中数组符号的简写形式是什么?

我尝试使用(无效):

$list = {};

如果您提供有关PHP其他速记的一些信息的链接,那将是完美的。


在特殊情况下(例如,str_split),可以使用许多函数来创建数组,但是我认为这并不是您要说的。
马修

PHP还没有。但是phpreboot和pihipi提供了实验性的新语法。
mario 2010年

Answers:


135

更新:
从PHP 5.4.0开始,引入了用于声明数组的简化语法

$list = [];

上一个答案:

没有。只有$list = array();但是您可以开始添加元素。

<?php
$list[] = 1;
$list['myKey'] = 2;
$list[42] = 3;

就PHP而言,这完全可以。对于不确定的变量,您甚至不会得到E_NOTICE

如果使用未初始化的变量,则会发出E_NOTICE级错误,但是如果将元素附加到未初始化的数组,则不会发出E_NOTICE级错误。

至于速记方法,到处都是零散的东西。如果要查找它们,请阅读《手册》

一些示例,仅供您娱乐:

  1. $arr[]简写array_push
  2. foreach结构
  3. echo $string1, $string2, $string3;
  4. 数组串联 +
  5. 存在的 elseif
  6. 变量嵌入字符串中, $name = 'Jack'; echo "Hello $name";

6
PHP就是这样的偷偷摸摸的。
GWW

1
我已经使用PHP多年了,我不得不问一个同事这$results[] = $row;是什么意思。
Josue Alexander Ibarra

4
$ results [] = $ row; 实际上比array_push($ results,$ row)
快得多

这段时间过后,我想 $var = [];PHP7已被引入。不知道它可以追溯到5.4!
IncredibleHat

46

是的,它存在!

从另一个堆栈溢出问题中提取:

数组的缩短语法已被重新讨论,接受,现在正与PHP 5.4一起发布。

用法:

$list = [];

参考: PHP 5.4数组的简写


对于也犯了此错误的任何人=>,请:在键和值之间使用而不是!
clabe45

30

也可以像这样在[]中定义内容:

  $array = ['vaue1', 'value2', 'key3'=>['value3', 'value4']];

这仅适用于php5.4及更高版本。


1
我认为最好写5.4或更高版本(在5.6中可以工作)。注意,这是将数组声明为类常量的唯一可行方法(例如const x = [“ a”,“ b”];),因为const x = array(....)不起作用
Pierpaolo Cira




3

您可以如下声明数组:

$myArray1 = array(num1, num2, num3);
$myArray2 = array('string1', 'string2', 'string3');
$myArray3 = array( 'stringkey1'=>'stringvalue1', 'stringkey2'=>'stringvalue2');
$myArray4 = array( 'stringkey1'=>numValue1, 'stringkey2'=>numValue2);
$myArray5 = array( numkey1=>'stringvalue1', numkey2=>'stringvalue2');
$myArray6 = array( numkey1=>numValue1, numkey2=>numValue2);

您可以根据需要拥有任意数量的嵌入式阵列。


这将产生有关未定义常量的通知。
Popnoodles

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.