Ответ 1
Вы не создаете экземпляр массива в PHP, используя:
$foo=new array(); // error in PHP
Что для Javascript:
foo=new Array(); // no error in Javascript
В PHP new
используется только для создания экземпляров объектов.
Я всегда создавал массивы, просто заполняя их
$foo[] = 'car';
но я видел много
$foo = array();
$foo[] = 'car';
и
$foo = new array();
Какая разница между не инициализацией, использованием array() и использованием нового массива();?
спасибо!
Вы не создаете экземпляр массива в PHP, используя:
$foo=new array(); // error in PHP
Что для Javascript:
foo=new Array(); // no error in Javascript
В PHP new
используется только для создания экземпляров объектов.
Разница заключается в том, что использование new
не работает, поскольку array()
- это языковая конструкция, а не конструктор объекта. Это вызывает ошибку:
Parse error: syntax error, unexpected T_ARRAY in php shell code on line 1
С другой стороны, объявив его как
$f=array();
прежде чем вы начнете назначать предметы, это хорошая практика. Строгий режим сообщений об ошибках может дать предупреждение об использовании необъявленной переменной в противном случае.
Вы можете создать экземпляр массива в PHP с помощью ключевого слова new
, однако он немного более массивный, чем массивы, созданные с помощью функции array()
, и не использует один и тот же вызов.
new ArrayObject();
будет создавать массив как объект. Что еще более важно, это расширяемый класс, если вы хотите использовать синтаксис массива с объектом в объектно-ориентированном PHP. В большинстве случаев рекомендуется использовать array()
для скорости и простоты.
Изменить: я думаю, я никогда не отвечал на этот вопрос.
$var = array();
$var[] = 'car';
создаст новый пустой массив, а затем добавит "автомобиль" в массив. Это хорошая форма для инициализации всех и всех массивов. Было бы лучше записать эти две строки как одну: $var = array('car');
$var[] = 'car';
создаст новый массив с "автомобилем", если $var
не является массивом или пуст. Если $var
уже объявлен как массив, вы можете обнаружить, что вы случайно сохранили некоторые старые значения (поэтому хорошая форма для инициализации ваших массивов).
$var = new ArrayObject();
$var[] = 'car';
- это способ ООП для объявления массива. Это немного более ресурсоемкий, поэтому придерживайтесь array()
, если у вас нет веских причин использовать ArrayObject
Примечание:
Приращение неинициализированной числовой переменной значительно медленнее, чем приращение инициализированной числовой переменной ($i++
медленнее, чем $i = 0; $i++
). Это не относится к массивам в php: ($var[] = 'car'
примерно совпадает с $var = array(); $var[] = 'car'
)
foo = new Array();
- это синтаксис javascript.
Хорошей практикой является предварительная инициализация ваших массивов, когда это применимо, поэтому вы случайно не заполняете данные в существующий массив с тем же именем, определенным в другом месте кода.