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(下一个可表示的浮点数)