自 5.4 起可使用短数组定义语法,用 [] 替代 array()。 php
<?php 数组
?> 函数
key 能够是 integer 或者 string。value 能够是任意类型。 spa
此外 key 会有以下的强制转换: .net
若是在数组定义中多个单元都使用了同一个键名,则只使用了最后一个,以前的都被覆盖了。 code
方括号和花括号能够互换使用来访问数组单元(例如 $array[42] 和 $array{42})要修改某个值,经过其键名给该单元赋一个新值。要删除某键值对,对其调用 unset() 函数。 对象
若是给出方括号但没有指定键名,则取当前最大整数索引值,新的键名将是该值加上 1(可是最小为 0)。若是当前尚未整数索引,则键名将为 0。 索引
注意这里所使用的最大整数键名不必定当前就在数组中。它只要在上次数组从新生成索引后曾经存在过就好了。如下面的例子来讲明: 字符串
以上例程会输出: get
Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 ) Array ( ) Array ( [5] => 6 ) Array ( [0] => 6 [1] => 7 )
应该始终在用字符串表示的数组索引上加上引号。例如用 $foo['bar'] 而不是 $foo[bar]。可是为何呢?可能在老的脚本中见过以下语法:
这样是错的,但能够正常运行。那么为何错了呢?缘由是此代码中有一个未定义的常量(bar)而不是字符串('bar'-注意引号),而 PHP 可能会在之后定义此常量,不幸的是你的代码中有一样的名字。它能运行,是由于 PHP 自动将裸字符串(没有引号的字符串且不对应于任何已知符号)转换成一个其值为该裸字符串的正常字符串。例如,若是没有常量定义为 bar,PHP 将把它替代为 'bar' 并使用之。
下标从 1 开始的数组
以上例程会输出:
Array ( [1] => 'January' [2] => 'February' [3] => 'March' )