根据标准数组定义:数组是一个变量,允许您存储相同数据类型的多个值。
在PHP中,比如$a=array("abc",123,"4");
$a[0]abc
、$a[1]123
和$a[2]4
将被视为字符串、数值或字符值,为什么?
PHP中的数组是不同的,只有一种类型的数组可以存储不同的类型。在您的示例中,项目保持其原始类型。abc是字符串,123是数字,4是字符串。
您甚至可以使用非数字键。例如$a["a"] = "test"
。
在php中,数组不是数组。
如果你真的想知道这整件事是如何运作的,我建议你观看以下演讲:Johannes Schlüter的2012年PHP英国会议-PHP under the hood。
此外,正如@RepWhoringPeeHaa所提到的:使用var_dump()
。
PHP对待数组的方式不同于它们的一般definition
。
我建议你在官方文档上多读一些关于它们的内容。
数组
PHP中的数组实际上是一个有序映射。映射是一种将值与键相关联的类型。这种类型针对多种不同用途进行了优化;它可以被视为数组、列表(向量)、哈希表(映射的实现)、字典、集合、堆栈、队列,甚至更多。由于数组值可以是其他数组,因此树和多维数组也是可能的。
使用array()指定
可以使用array()语言构造创建数组。它采用任意数量的逗号分隔键=>值对作为参数。
array(
key => value,
key2 => value2,
key3 => value3,
...
)
最后一个数组元素后面的逗号是可选的,可以省略。这通常是针对单行阵列进行的,即阵列(1,2)比阵列(1、2,)更可取。另一方面,对于多行数组,通常使用尾随逗号,因为它可以更容易地在末尾添加新元素。
<?php
$array = array(
"foo" => "bar",
"bar" => "foo",
);
// as of PHP 5.4
$array = [
"foo" => "bar",
"bar" => "foo",
];
?>