Можно ли обойтись без isset переменной при обработке $POST

  • Автор темы Автор темы KolyaA
  • Дата начала Дата начала

KolyaA

Новичок
Можно ли обойтись без isset переменной при обработке $POST

То есть можно ли как-то попроще написать такое

PHP:
if(isset($_POST['act'])&&($_POST['act']==1))

?
 
А разве можно с помощью empty проверить, что значение будет равно именно == 1
 
Глупость написал. А вообще по-моему лучше не заморачиватся по таким вопросам =)
 
кстати,

> что значение будет равно именно == 1

пишется несколько иначе:

$value === 1,

$_POST['act']==1 так же будет истинным, если $_POST['act'] содержит (bool)true
 
Уж сколько раз всем кофейникам писал: $_REQUEST всегда только строка. Все. Никаких булевых или интеджерей быть не может. "===число" бессмысленен с $_REQUEST.

+массивы строк бывают
 
http://php.net/filter_input

-~{}~ 08.05.09 23:30:

даже для одной переменной очень удобно

-~{}~ 08.05.09 23:34:

например,
function filter_pos_int($var,$SCOPE=INPUT_POST){
return filter_input($SCOPE,$var,FILTER_VALIDATE_INT,array('options'=>array('min_range'=>0)));
}
всегда даст integer >=0 или false, что удобно проверять на тип :)
 
DiMA, Ваше утверждение абсолютно верно для случая, когда в $_POST содержатся данные, действительно отправленные POST-ом, но бывают исключительные ситуации:

PHP 5.2.9 (cli)

PHP:
$_REQUEST['var'] = 100;
var_dump($_REQUEST['var']);
 
weregod, а не надо что-то менять скриптом в массивах, которые устанавливаются из внешней среды. не для того они предназначены.
 
аа, пасибо, дорогой. Еще про это напомни .-)

#define TRUE FALSE
 
оффтоп, конечно

идеалисты
из-за корявой структуры проекта иногда бывает гораздо дешевле наполнить суперглобалы и вызвать имеющийся ф-л ;)
 
weregod, только это не объясняет почему наполнять их надо значениями, которые не могут туда попасть обычным образом, например int-ами, а не строковыми представлениями чисел. наверное, чтобы получить удовольствие от отладки :)
 
я просто заметил, что ожидать в $_REQUEST исключительно строковые данные можно только до того момента, пока они не будут подменены вручную и привёл пример вредной замены

и не спорю, что
#define TRUE FALSE
ходит рядом с
$_REQUEST['var'] = 100;

на практике бывает, что всё плохое сделали до вас ;)
 
Сверху