11

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

我知道 PHP 变量的声明如下:$variable = array()

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

这在 Javascript 中

var results = new Array (13);

在 PHP 中变成了这个,我正确吗?

$results = array(13);
4

5 回答 5

16

实际上,在这种情况下,您正在创建一个 size 数组13

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

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

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

于 2012-07-09T22:59:07.780 回答
7

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

$array = new SplFixedArray(5);

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

于 2012-07-09T23:01:26.530 回答
5

new Array(someNumber)在 JS 中创建一个someNumber包含undefined. 除非您希望始终使用它[...]来创建包含某些元素的数组,因为该语法并不模棱两可,而new Array()根据参数的数量和类型的不同,其工作方式也有所不同。

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

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

于 2012-07-09T22:59:05.857 回答
1

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

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

于 2012-07-09T22:58:58.480 回答
1

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

var results = new Array (13);

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

$results = array(13);

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

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

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

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

于 2012-07-09T23:03:58.630 回答