是否存在相当于“;new Array(number)”;在javascript中


Is there a PHP equivalent of "new Array (number)" in javascript?

我试图将基本的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);

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

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

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

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

另外请注意,对于固定大小的阵列有SplFixedArray

$array = new SplFixedArray(5);

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

JS中的

new Array(someNumber)创建一个包含someNumber元素的数组,这些元素是undefined。除非您愿意,否则您应该始终使用[...]来创建包含某些元素的数组,因为该语法并不含糊,而new Array()的工作方式因参数的数量和类型而异。

然而,PHP中的array(13)创建了一个包含单个值13的数组。

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

否,在PHP中的括号内放入一个数字会为数组增加一个值,即int 13。而括号内JS中的一个数字会生成一个包含该数量未定义值的数组。

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

这将创建一个具有13个未定义值的数组:

var results = new Array (13);

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

$results = array(13);

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

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

你可能还想看看这个问题:

如何在PHP中创建一个预定义大小的空数组?