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) )  
 
 ?
- 
				В принципе ничем.