Необходимо ли инициализировать / объявлять переменную в PHP?
цель этого вопроса-только получить знания или информацию для меня и многих таких, как я.
Итак, мой вопрос:
необходимо ли инициализировать / объявлять переменную перед циклом или функцией?
задать этот вопрос для моей путаницы, потому что я инициализирую / объявляю переменную раньше или нет, мой код все еще работает.
я делюсь демо-код для того, что я на самом деле имею в виду:
$cars = null;
foreach ($build as $brand) {
$cars .= $brand . ",";
}
echo $cars;
или
foreach ($build as $brand) {
$cars .= $brand . ",";
}
echo $cars;
оба фрагмента кода работают одинаково для меня, поэтому необходимо инициализировать / объявить переменную в начале?
3 ответов
PHP не требуется, но рекомендуется всегда инициализировать переменные.
Если вы не инициализируете переменные со значением по умолчанию, движок PHP будет выполнять приведение типа в зависимости от того, как вы используете переменную. Иногда это приводит к неожиданному поведению.
короче говоря, на мой взгляд, всегда устанавливайте значение по умолчанию для переменных.
С. П. В вашем случае значение должно быть установлено в "" (пустая строка), а не null, поскольку вы используете его для объединения других строк.
редактировать
Как отмечали другие (@n-dru), если вы не установите значение по умолчанию, будет создано уведомление.
вам лучше назначить ему пустую строку $cars = '';
, в противном случае (если у вас есть сообщение об ошибке) вы должны увидеть уведомление:
обратите внимание: неопределенная переменная: автомобили
PHP предположит, что он был пуст, и результирующая строка будет такой же, но вы не должны предпочитать вызывать дополнительные накладные расходы, вызванные необходимостью регистрации этого уведомления. Так что производительность-мудрый лучше назначить его пустым первый.
кроме того, используя такие редакторы, как Aptana и т. д., Вы можете нажать F3
чтобы увидеть, откуда возникла данная переменная. И это так удобно-инициализировать его где-то. Так что отладка-мудро также лучше иметь очевидное место рождения переменной.
Это зависит: если вы объявляете переменную вне функции, она имеет "глобальную область", это означает, что к ней можно получить доступ только вне функции.
Если переменная объявлена внутри функции, она имеет "локальную область" и может использоваться только внутри этой функции. (http://www.w3schools.com/php/php_variables.asp)
но кажется, что переменная "cars", которую вы определили вне функции, работает для вашей функции даже без глобального ключевое слово...