[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Почему при выводе неопределенной
Xes
Почему при объявлении переменной глобальной, которая ранее не была инициализированна, и последующей попытки вывести ее нет ошибки. Как будто она null?


global $a;
echo $a;

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



Спустя 51 минута, 32 секунды (6.11.2011 - 00:39) sergeiss написал(а):
А какой уровень вывода ошибок у тебя установлен? Установи функцией error_reporting() вывод всех ошибок. Что тогда скажет ПХП?

Спустя 1 час, 42 минуты, 12 секунд (6.11.2011 - 02:21) caballero написал(а):
Цитата
Почему при объявлении переменной глобальной, которая ранее не была инициализированна, и последующей попытки вывести ее нет ошибки


потому что здесь нет ошибки и какая переменная не важно.

максимум что можно получить - это предупреждение от PHP что используется неинициализированная переменная

Спустя 55 минут, 20 секунд (6.11.2011 - 03:16) Krevedko написал(а):
да даже просто echo $a; выведет не ошибку, а нотис (замечание, предупреждение) и не прервет работу скрипта, а при определенном уровне выставленном уровне ошибок даже не выведет ничего.

Спустя 2 минуты, 17 секунд (6.11.2011 - 03:18) Zerstoren написал(а):
Цитата (Krevedko @ 6.11.2011 - 00:16)
да даже просто echo $a; выведет не ошибку, а нотис (замечание, предупреждение) и не прервет работу скрипта, а при определенном уровне выставленном уровне ошибок даже не выведет ничего.

Все равно, на сайте не должно быть не одного нотис сообщения.
Лично моя позиция.


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

Спустя 6 часов, 41 минута, 38 секунд (6.11.2011 - 10:00) sergeiss написал(а):
Цитата (Zerstoren @ 6.11.2011 - 04:18)
Все равно, на сайте не должно быть не одного нотис сообщения.
Лично моя позиция.

Согласен. Это и моя позиция smile.gif Всегда выставляю максимальный уровень нотисов и ошибок, чтобы сразу видеть, если где-то произошло нарушение чего-нибудь, чтоб тут же устранить его.

Спустя 1 час, 39 минут, 33 секунды (6.11.2011 - 11:40) twin написал(а):
Никакого нотиса не будет. Ибо переменная объявлена. Она объявлена глобальной, и хоть и не инициализирована явно, но память под неё выделена. Точно так же, как
public $a;
в классе.
А значит никаких нотисов.

Использовать эту фичу не стоит, это вредит прозрачности.

Спустя 1 день, 9 часов, 15 минут, 44 секунды (7.11.2011 - 20:55) Xes написал(а):
Ну как бы так было error_reporting(E_ALL);
twin, все разрулил.

Спустя 2 месяца, 9 дней, 23 часа, 58 минут, 13 секунд (17.01.2012 - 20:54) Xes написал(а):
Цитата
Использовать эту фичу не стоит, это вредит прозрачности.

Хочется возрадить вопрос, с примером.
function GetWeatherInCity($cityen = null, $numday = 3){
if(!$cityen){
global $cityen;
}
$cityen = $cityen ? $cityen : null; (****)


Нужна ли тут строчка (****) или или можно ее неписать?
Ошибки вообщемто не будет, влюбом случае. Чисто для себя чтоль оставлять ее twin имел ввиду чтобы видеть проверку?
Но тогда наверное лучше так записать
$cityen = !empty($cityen) ? $cityen : null;

Спустя 12 минут, 12 секунд (17.01.2012 - 21:06) nugle написал(а):
я думаю так лучше
$cityen = !empty($cityen) ? $cityen : null;

Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.