Есть ли PHP-эквивалент «нового массива (числа)» в javascript?

Я пытался преобразовать основную функцию 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); 

Фактически, в этом контексте вы создаете массив размером 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

new Array(someNumber) в JS создает массив, содержащий элементы someNumber которые не undefined . Если вы не хотите, чтобы вы всегда использовали [...] для создания массива с некоторыми элементами, поскольку этот синтаксис не является двусмысленным, а new Array() работает по-разному в зависимости от количества и типа аргументов.

array(13) в PHP, однако, создает массив, содержащий одно значение 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 с предопределенным размером?