Forum Webscript.Ru
Программирование => PHP => Тема начата: Andruha от 12 Августа 2002, 07:53:48
-
Я новичок в php, только осваиваю. Такой вот вопрос:
Мой скрипт обрабатывает переменную, которая ему передается по урл, типа
script.php?abc=123.
А если я запрашиваю script.php без параметров, то
выдается ошибка в том месте, где скрипт должен ее обработать.
Undefined variable: abc.
Вообще логично...
Но как мне решить эту проблему? Может определить, был ли передан параметр, если нет, то присвоить значение "по умолчанию"?
Пользуюсь php 4.2.2.
Прошу извинить за возможно глупый вопрос, видимо где-то не дочитал документацию...
Заранее спасибо.
-
супер вопрос! лучшего не встречал!
ладно, это офф...
все равно никто не ответит, слушай сюда:
там, где у тебя стоит обработка переменной, можешь поставить такой узел:
if(!$abc)$abc=0;
но можно и по-другому извращаться, можешь тем-же узлом обойти часть, программы, где она с этой переменной работает...
А вообще BAD QUESTION, imho... =(
-
Хм... Сорри, конечно, но вообще-то с самого начала был именно такой вариант... В том-то вся и херня, что ошибка все равно вылезает ссылаясь именно на эту строчку, хотя так вроде быть не должно. Хотелось бы найти такое решение, чтобы ошибки небыло (вариант с отключением отображения ошибок не рассматривается :)).
Может это глюк конкретной версии php (4.2.2)?
-
if (!isset($abc)) $abc=0;
//если переменная $abc не определена, то присваем = 0;
-
[off]
я...
супер вопрос! лучшего не встречал!
ладно, это офф...
все равно никто не ответит, слушай сюда:
не надо понтов. Я думаю ок. 30% начинающих сталкивались с такой лажей.
[/off]
-
Это не глюк, это фича.
-
вариант с отключением отображения ошибок не рассматривается
Почему? Если тебе просто необходимо подавить замечания (а они в большинстве случаев бесполезны), то в php.ini исправь
error_reporting = E_ALL & ~E_NOTICE
-
[OFF]Alexandr и Andruha, сорри если вас обидел... хреного мне, но это личное...[/OFF]
-
[OFF]забыл подписаться, how ever... =((([/OFF]
-
Andruha
Есть такая хорошая вещб, как собака:
if(!@$abc)$abc=0;
Все...
Ошибка будет отключена только на эту строчку (оператор). Этот прием пиличен, в отличие от редактирования PHP.ini, и, мало того, повсеместно используется, как самый удобный, и быстрый.
-
if(!@$abc)$abc=0;
через error_reporting() удобнее. Один раз прописал и на весь скрипт. И не надо везде собак прописывать/удалять
-
Макс ...
Я(да и не только я ) всегда рекомендую выставлять error_reporting на максимум, а режим менять только после разработки (при выкладывании на сервер).
Код должен быть аккуратным!
И ошибок (даже логических) должно быть мало...
См. подпись.
-
Я(да и не только я ) всегда рекомендую выставлять error_reporting на максимум, а режим менять только после разработки (при выкладывании на сервер).
Вот именно поэтому и стоит использовать error_reporting() вместо многочисленных собак. При разработке поставил на максимум а перед открытием проэкта только одну строку изменить чтоб на 0 поставить
-
Макс
Угу... А во время разработки все-время читать эту надпись?
-
Угу... А во время разработки все-время читать эту надпись?
Мне они они не мешают (наоборот помогают в отладке). К тому же я стараюсь писать чтобы и при error_reporting(E_ALL); их было поменьше, так что проблем не вижу
-
Макс
Ладно, здесь мы не содемся во взглядах (каждый делает так, как ему удобнее .`-))