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

KolyaA

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

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

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

KolyaA

Новичок
А разве можно с помощью empty проверить, что значение будет равно именно == 1
 

Армян

Новичок
Глупость написал. А вообще по-моему лучше не заморачиватся по таким вопросам =)
 

weregod

unserializer
кстати,

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

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

$value === 1,

$_POST['act']==1 так же будет истинным, если $_POST['act'] содержит (bool)true
 

DiMA

php.spb.ru
Команда форума
Уж сколько раз всем кофейникам писал: $_REQUEST всегда только строка. Все. Никаких булевых или интеджерей быть не может. "===число" бессмысленен с $_REQUEST.

+массивы строк бывают
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
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, что удобно проверять на тип :)
 

weregod

unserializer
DiMA, Ваше утверждение абсолютно верно для случая, когда в $_POST содержатся данные, действительно отправленные POST-ом, но бывают исключительные ситуации:

PHP 5.2.9 (cli)

PHP:
$_REQUEST['var'] = 100;
var_dump($_REQUEST['var']);
 

dimagolov

Новичок
weregod, а не надо что-то менять скриптом в массивах, которые устанавливаются из внешней среды. не для того они предназначены.
 

DiMA

php.spb.ru
Команда форума
аа, пасибо, дорогой. Еще про это напомни .-)

#define TRUE FALSE
 

weregod

unserializer
оффтоп, конечно

идеалисты
из-за корявой структуры проекта иногда бывает гораздо дешевле наполнить суперглобалы и вызвать имеющийся ф-л ;)
 

dimagolov

Новичок
weregod, только это не объясняет почему наполнять их надо значениями, которые не могут туда попасть обычным образом, например int-ами, а не строковыми представлениями чисел. наверное, чтобы получить удовольствие от отладки :)
 

weregod

unserializer
я просто заметил, что ожидать в $_REQUEST исключительно строковые данные можно только до того момента, пока они не будут подменены вручную и привёл пример вредной замены

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

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