Forum Webscript.Ru
Программирование => PHP => Тема начата: Chpock от 03 Февраля 2002, 03:43:31
-
почему "крутые" скрипты проверяют наличие переменной так - if(isset($var)&&($var!=""))? я всю жизнь просто проверял на пустоту и все было оК..... кто прав?
-
Chpock
ну проверишь ты на пустоту, а если тебе дают переменную пустую? причем, например, существует обработка такого варианта? ...
Если ты поставишь уровень сообщения об ошибках на E_ALL то посмотри что будет с твоим скриптом!
P.S. Кстати, и это не "крутые" скрипты, а просто правильно написаные и отлаженые...
-
для примера, в строке GET пишешь http://....smth.php?var1=aaa&var2=&var3=bbb
переменная var2 установленна, но она пустая, т.е. var2==\'\'
такие строки встречаются часто, если у тебя зараннее задан формат передачи данных, и это очень удобно, если все время работать с одной установленной структурой данных - тебе не нужно все время составлять строку при передаче в другой файл - ее гораздо легче написать сразу, а потом проверять на выходе той самой "крутой" проверкой. В определенных случаях это очень хороший стиль.
-
я понимаю что так проверять правильно и логично, но если я знаю что переменная не должно быть пуста, например, имя юзера и проверяю как if($username!="") - это мне чем то черевато?
-
Chpock
Ты попробуй так включи в php.ini error_reporting=E_ALL; и увидишь скока тебе ворнингов вылетит, кстати, так же криво написаны php-nuke/xmb/....
я понимаю что так проверять правильно и логично, но если я знаю что переменная не должно быть пуста, например, имя юзера и проверяю как if($username!="") - это мне чем то черевато?
тогда уж if(@$username != "") чтобы не показывать ворнинги.
-
а чем empty не устраивает? зачем нужно isset и еще одну проверку?
if (empty($var)) { // evaluates true
echo "$var is either 0 or not set at all";
}
-
Felenka
А просто переменная может быть не empty, однако не хранить необходимого тебе значения.
-
ThE0ReTiC
сорри, я нечетко сформулировала мысль :)))
чем лучше
if ( isset($var) && ($var!="") )
или
if( @$username != "" )
и чем хуже
if ( !empty($var) )
?
-
В принципе ничем.