Я пытаюсь проверить, что отправленные данные этого пользователя, начиная с $_POST
, содержат по крайней мере те же элементы, что и мой переданный массив. Я делаю это, потому что позже буду использовать эти элементы, вызывая $_POST['element']
, и мне не нравится, что ошибок в том, что этот элемент не существует (не установлено). :)
Я не хочу использовать что-то вроде isset($_POST['x'], $_POST['y'], $_POST['z'])
, потому что каждый раз, когда мне нужно переписать $_POST
, и это также кажется нечитаемым.
Я пытался использовать in_array(array('x', 'y', 'z'), $_POST)
, но он не работает (он возвращает false
, когда должен возвращать true
). Есть идеи, как заставить это работать? :) Я уверен, что у меня есть пустые строки как $_POST['x']
, $_POST['y']
и $_POST['z']
. Я даже пытался изменить значения трех элементов $_POST
шланга на что-то отличное от пустой строки - все же ... не работает должным образом. (
Спасибо за совет! :)
Edit:
Только что обнаружил, что in_array()
проверяет значения, а не ключи. Затем я попытался сделать так ...
in_array(array('title', 'slug', 'content'), array_keys($_POST))
Тем не менее, он возвращает false
. Как это получается? /
Редактировать # 2:
Хорошо, вот результаты отладки ...
Входящие $_POST
:
array(3) {
["title"]=>
string(0) ""
["slug"]=>
string(0) ""
["content"]=>
string(0) ""
}
Результат array_keys($_POST)
:
array(3) {
[0]=>
string(5) "title"
[1]=>
string(4) "slug"
[2]=>
string(7) "content"
}
Результат in_array(array('title', 'slug', 'content'), array_keys($_POST))
:
bool(false)
Вопрос ... почему это false
? Я все сделал правильно, насколько я знаю.
Редактировать # 3:
В конце я создал свой собственный метод с именем Arr::keys_exists($keys, $array)
.