Должен ли массив быть объявлен перед его использованием?

Какой из них лучше, код A или B:

A:

$array = array(); $array[] = 'value'; 

B (используйте массив без объявления массива):

  $array[] = 'value' 

Лучшая практика объявляет об этом.

Причина: если по какой-то причине кто-то включил register_globals и $ array установлен до его использования, вы можете получить странные результаты. Если вы заявите об этом, вы всегда уверены, что у вас есть пустой массив.

или C: $ array = array ('value');

А – лучший способ, но если бы его известное значение я сделал бы
$ Массива = массив ( 'значение');

попробуйте этот сайт

A лучше. B приведет к Notice PHP при запуске, но все равно будет работать одинаково. Как и некоторые другие люди, и я забыл изначально, A также сделает ваш код более надежным, убедившись, что $array – это то, что вы хотите, когда оно вам нужно, а не какой-либо другой тип переменной или ранее определенная переменная.

Изменить: одно время PHP не бросает уведомления при использовании неопределенной переменной – это при добавлении к неинициализированному массиву. От php.net:

Ошибка уровня E_NOTICE выдается в случае работы с неинициализированными переменными, но не в случае добавления элементов к неинициализированному массиву.

ИМО зависит от сложности вашего скрипта. Так же, как и в случае $ i в циклах foreach, вы можете использовать массив.

Сначала определив массив, вы убедитесь, что это новый и пустой массив, который гарантирует, что он не содержит данных из предыдущего использования.

A Лучше, чем B поскольку @ G-Nugget сказал по тем же причинам, но следствие состоит в том, что он также делает ваш код более трудным для чтения, если у вас появляются переменные из ниоткуда.

Согласно руководству , часть, ссылающаяся на создание / изменение с помощью синтаксиса с квадратной скобкой , на самом деле подразумевает, что создание массивов с помощью $array[] = 'value'; одинаково прав, как создание массивов, объявляя переменную как таковую, прежде чем присваивать ей значения.

Другими словами, не беспокойтесь об этом.