PHP isset в string ключ apply. как?
Под конец рабочего дня решил тыпануть. Вот собственно:
Код:
var_dump($_POST['save'],$_POST['save']['apply'],isset($_POST['save']['apply']));
string(8) "Изменить" string(1) "И" bool(true) - Как? И почему? Да и зачем?
Неужели теперь писать is_array && array_key_exists ?
true, потому что isset(). А что не так?
Цитата: int
true, потому что isset(). А что не так?
Ну так же я проверяю наличие элемента в массиве, а тут строка, и соответственно указанного мной элемента быть не может. Зачем происходить преобразование? Да и как в этом случае теперь поступать?
Цитата: clgs
Цитата: int
true, потому что isset(). А что не так?
Ну так же я проверяю наличие элемента в массиве, а тут строка, и соответственно указанного мной элемента быть не может. Зачем происходить преобразование? Да и как в этом случае теперь поступать?
я чтото не понял вопроса.
Ты проверяешь - инициализированная ли переменная. И так как она инициализированна - то ты получаешь тру.
Если тебе нажно проверять - массив ли это - то соотвественно да - надо использовать is_array. Не понятно, что у тебя вызвало такое удивление?
Код:
$arr=array('save'=>'Строка');
var_dump($arr['save']['apply']); // string(1) "С"
var_dump($arr['save']['apply']); // string(1) "С"
Код:
isset($_POST['save']['apply']) // 1
array_key_exists('save',(array)$_POST)&&array_key_exists('apply',(array)$_POST['save']) // 2
или? // 3
array_key_exists('save',(array)$_POST)&&array_key_exists('apply',(array)$_POST['save']) // 2
или? // 3
2) К массиву можно обращаться по индексу
3) Индекс - это число
4) строка в число: intval('строка') == 0
5) строка['строка'] == строка[0]
попробуй is_array($_POST['save'])
int, т.е. вы рекомендуете следующее?
Код:
is_array($_POST['save'])&&isset($_POST['save']['apply'])