在javascript中是否有PHP等效的“新数组(数字)”?

时间:2012-07-09 22:56:16

标签: php javascript arrays variables

我试图将基本的Javascript函数转换为PHP,我看到其中一个变量被声明为var Variable = new Array (13)

我知道PHP变量声明为:$variable = array()

但是new Array(13)中的“13”呢?这会转化为$variable = array(13)吗?我试过了,但似乎没有用。

这在Javascript中

var results = new Array (13);

在PHP中成为这个,我是否正确?

$results = array(13);

5 个答案:

答案 0 :(得分:14)

实际上,在这种情况下,您正在创建一个大小为13的数组。

您实际上不需要在PHP中预分配数组,但您可以执行以下操作:

$result = array_fill( 0, 12, null);

这将创建一个包含13个元素(索引0到12)的数组,其值为null

答案 1 :(得分:7)

另请注意,固定大小的数组有SplFixedArray

$array = new SplFixedArray(5);

http://php.net/manual/en/class.splfixedarray.php

答案 2 :(得分:4)

JS中的

new Array(someNumber)创建一个包含someNumberundefined元素的数组。除非您希望这样,否则应始终使用[...]创建包含某些元素的数组,因为该语法不明确,而new Array()的工作方式不同,具体取决于参数的数量和类型。

然而,PHP中的

array(13)会创建一个包含单个值13的数组。

PHP中大致相似的函数是array_fill(0, 12, null)。但是,PHP可能会分配一个空数组,然后在填充它时将其增长。

答案 3 :(得分:1)

不,在PHP的括号内添加一个数字会向int 13的数组添加一个值。而括号内的JS中的数字会生成一个具有该数量的未定义值的数组。

PHP中的数组是动态的,你不需要像JS中有时那样声明它们的大小。

答案 4 :(得分:1)

这会创建一个包含13个未定义值的数组:

var results = new Array (13);

这将创建一个第一个索引(索引0)等于13的数组:

$results = array(13);

所以这是不正确的。如果你想要与javascript相同的结果,你会喜欢这样的东西:

$results = array_fill(0, 13, '');

您可能还想查看此问题:

How to create an empty array in PHP with predefined size?