2017-01-28 7 views
-1

У меня есть форма, и если пользователь проходит ни в чем, запрос URL будет иметь имя элемента с пустым значением:

xxx.com/?id=&name= 

Я хотел проверить, если сеанс $ _GET пуст на основе значений в элементы. if (! empty ($ _ GET)) не работает, поскольку учитывает элементы массива. Есть ли одна строка, если оператор, который может сделать это, не используя цикл foreach?

метод
+0

Пробовал 'если (! Пусто ($ _ GET [ 'переменная'])) { // Сделайте что-нибудь. } '? –

+0

У меня так много элементов в массиве get, я не хочу проверять его один за другим – reddy

ответ

0

Простейшее использовать in_array метода:

echo in_array("", $_GET, true)?"has empty elements":"all elements has values"; 

Другой способ использовать array_filter для фильтрации элементов массива, значения которых пусты

echo count($_GET) != count(array_filter($_GET))?"has empty elements":"all elements has values"; 

Кроме не забудьте проверить,

count($_GET) > 1 

в обоих условиях

+0

Если (count (array_filter ($ _ GET))> 0), похоже, работает, поскольку я пытаюсь проверить, массив пуст или имеет что-то, но проблема в том, что когда у меня значение равно 0, оно рассматривало его как пустое значение. – reddy

+0

Затем перейдите к методу 'in_array'. Не забудьте добавить третий параметр – Thamilan

+0

In_array ("", $ _GET, true) проверяет, не имеет ли в массиве пустого значения или хотя бы одного пустого значения, но я хотел проверить все пустые значения или на менее одного значения. – reddy

0

Вы должны проверить переменную вместо массива.

if (!empty($_GET['id']) || !empty($_GET['name'])) { 
//code goes here... 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^