Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Тонкости, или слон по клумбам..
Оба кода эквивалентны.. Зачем ДВЕ функции с одинаковыми возможностями?
Я не говорю что чтото не нужно, я хочу понять зачем? Одна из них отличается по функционалу и/или возможностям? Обьясните где и в каких случаях рекомендовано использовать первую/вторую.. и почему...
выходит empty() проверяет только пустоту...
а isset() наличие неременной...
по идее интерпретатор не будет ругаца на empty() проверку необьявленной переменной, однако насколько я понял из соображений верного подхода юзать надо обе функции...
и unset()...
DeepVarvar Если вас интересует пришла ли переменнае Get/Post методом то впринципе уже чувствутеся разница между этим функциями - если в форме не было поля abc то isset($_REQUEST['abc']) вернет false а елси поле было но оно было пустоен и пустое передалось то isset($_REQUEST['abc']) вернет true а empty($_REQUEST['abc']) вернет true
DeepVarvar
Отправлено: 02 Мая, 2009 - 10:40:22
Активный участник
Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008 Откуда: Альфа Центавра
Помог: 353 раз(а)
я не привязан сейчас к конкретной необходимости использовать пример обсуждаемый нами тут.. а за ответы спасиб!!!
Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006 Откуда: Israel
Помог: 3 раз(а)
Вопервых - будет ругаться за проверку на пустоту необъявленной переменной.
Во вторых null, 0, '', false проходят за пустые. isset проверяет наличие переменной, empty проверяет её значение.
----- Truly yours, Sasha.
DeepVarvar
Отправлено: 02 Мая, 2009 - 11:38:02
Активный участник
Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008 Откуда: Альфа Центавра
Покинул форум
Сообщений всего: 458
Дата рег-ции: Авг. 2008 Откуда: Россия
Помог: 1 раз(а)
DeepVarvar
Нет, не так. Используйте одну функцию.
Гость
Отправлено: 02 Мая, 2009 - 13:16:49
УДАЛЁН
valenok Таки нет а именно переменная установленая в NULL и неопределенная переменная это одно и то же - можете проверить то есть unset($abc) это то же саоме что $abc=NULL по сей причине isset на переменную равную NULL вернет true
DeepVarvar
Отправлено: 02 Мая, 2009 - 13:23:05
Активный участник
Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008 Откуда: Альфа Центавра
Помог: 353 раз(а)
хм... а в случае с проверкой $_GET['variable'] всетаки стоит использовать обе ф-ции...
1. пришел ли?
2. не пуст ли?
JustUserR, unset($abc) это то же саоме что $abc=NULL... т.е.?
Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006 Откуда: Israel
Помог: 3 раз(а)
тоже самое.
$abc=null;
if (isset($abc)) { print 'переменная не пропала!!!'; }
else { print 'тютеньки!!!'; }
тоже выведет тютеньки
----- Truly yours, Sasha.
Ch_chov
Отправлено: 02 Мая, 2009 - 14:14:57
Постоянный участник
Покинул форум
Сообщений всего: 2121
Дата рег-ции: Июль 2008 Откуда: из города
Помог: 90 раз(а)
Цитата:
а в случае с проверкой $_GET['variable'] всетаки стоит использовать обе ф-ции...
Зачем ? Если ты точно знаешь, что значение переменной не может быть равно нулю или пустой строке, то удобней пользовать просто empty.
DeepVarvar
Отправлено: 02 Мая, 2009 - 14:22:23
Активный участник
Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008 Откуда: Альфа Центавра
Помог: 353 раз(а)
Спасибо ребят!!! Вот где подводные камни!!! А ведь без глубокого и ВЕРНОГО понимания свойств ф-ций можно наваять ошибочную логику мозга сайта... ))))))
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.