it-swarm.com.ru

Как проверить, существует ли параметр $ _GET, но не имеет значения?

Я хочу проверить, существует ли параметр app в URL, но не имеет значения. 

Пример:

my_url.php?app

Я пытался isset() и empty(), но не работает. Я видел, как это было сделано раньше, и я забыл, как. 

9
Ben

Пусто правильно. Вы хотите использовать как установлено, так и пусто вместе

if(isset($_GET['app']) && !empty($_GET['app'])){
    echo "App = ".$_GET['app'];
} else {
    echo "App is empty";
}
21
Jay Hewitt

empty должен работать (if(empty($_GET[var]))...), так как он проверяет следующее:

Следующие вещи считаются пустыми:

"" (пустая строка) 
 0 (0 в виде целого числа) 
 0.0 (0 в виде числа с плавающей запятой) 
 "0" (0 в виде строки) 
 NULL 
 FALSE 
 array () (пустой массив) 
 $ var; (объявленная переменная, но без значения)

Вот ваши альтернативы:

is_null - определяет, является ли переменная NULL

if(is_null($_GET[var])) ...

defined - проверяет, существует ли данная именованная константа

if(defined($_GET[var])) ...
5
Kermit
if( isset($_GET['app']) && $_GET['app'] == "")
{

}
1
84em

Вы можете просто проверить это с помощью array_key_exists('param', $_GET);.

Представьте, что это ваш URL: http://example.com/file.php?param. У него есть параметр запроса param, но он не имеет значения. Таким образом, его значение будет null на самом деле.

array_key_exists('param', $_GET); возвращает true, если param существует; возвращает false, если он вообще не существует.

0
Ali