javascript中是不是有相当于“新数组(数字)”的PHP?

Posted

技术标签:

【中文标题】javascript中是不是有相当于“新数组(数字)”的PHP?【英文标题】:Is there a PHP equivalent of "new Array (number)" in javascript?javascript中是否有相当于“新数组(数字)”的PHP? 【发布时间】:2012-07-09 09:40:38 【问题描述】:

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

【问题讨论】:

可能是一个相关的问题:***.com/questions/5385433/… 【参考方案1】:

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

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

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

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

【讨论】:

【参考方案2】:

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

$array = new SplFixedArray(5);

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

【讨论】:

【参考方案3】:

new Array(someNumber) 在 JS 中创建一个包含 someNumber 元素的数组,这些元素是 undefined。除非您希望始终使用 [...] 来创建包含某些元素的数组,因为该语法没有歧义,而 new Array() 的工作方式因参数的数量和类型而异。

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

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

【讨论】:

【参考方案4】:

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

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

【讨论】:

您不需要在 JavaScript 中声明大小,除非您有充分的理由使用恰好具有 n 实例的 undefined 的数组。 @zzzzBov 谢谢,我对 JS 不像 PHP 那样熟悉。稍作修改的答案。【参考方案5】:

这将创建一个包含 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?

【讨论】:

那里只有可行的解决方案!考虑到其他人用 array_fill(0, 12) 回答,因此导致一个 12 列的表而不是 13...

以上是关于javascript中是不是有相当于“新数组(数字)”的PHP?的主要内容,如果未能解决你的问题,请参考以下文章

是否有相当于背景大小的img(javascript):封面?

相当于elm(或javascript)中的std :: nextafter(下一个可表示的浮点数)

使用 JavaScript 命名空间是不是有任何危险?

JavaScript 调试常见报错以及原因

是否有相当于独立JavaScript文件的django模板注释?

27 JavaScript数据类型与内存管理