我试图将基本的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);
答案 0 :(得分:14)
实际上,在这种情况下,您正在创建一个大小为13
的数组。
您实际上不需要在PHP中预分配数组,但您可以执行以下操作:
$result = array_fill( 0, 12, null);
这将创建一个包含13个元素(索引0到12)的数组,其值为null
。
答案 1 :(得分:7)
另请注意,固定大小的数组有SplFixedArray
$array = new SplFixedArray(5);
答案 2 :(得分:4)
new Array(someNumber)
创建一个包含someNumber
个undefined
元素的数组。除非您希望这样,否则应始终使用[...]
创建包含某些元素的数组,因为该语法不明确,而new Array()
的工作方式不同,具体取决于参数的数量和类型。
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, '');
您可能还想查看此问题: