2012-09-19 16 views
9

Chcę sprawdzić, czy parametr app istnieje w adresie URL, ale nie ma wartości.

Przykład:

my_url.php?app 

Próbowałem isset() i empty(), ale nie działają. Widziałem to już wcześniej i zapomniałem jak.

+1

Porównaj z ""? – BSull

Odpowiedz

19

Puste jest poprawna. Chcesz używać obu jest ustawiona i opróżnić razem

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

Twoja "aplikacja jest pusta" wyświetli się, jeśli nie jest ustawiona, umieściłbym w tym miejscu instrukcję elseif – Scuzzy

+2

Rzeczywiście, dokładniejsze stwierdzenie będzie: if (isset ($ _ GET ['app']) &&! empty ($ _ GET ['app'])) { echo "App =". $ _ GET ['app']; } elseif (isset ($ _ GET ['app'])) { echo "Aplikacja jest pusta"; } else { echo "Aplikacja nie jest ustawiona"; } –

1
if(isset($_GET['app']) && $_GET['app'] == "") 
{ 

} 
5

empty powinno działać (if(empty($_GET[var]))...), ponieważ sprawdza następujące:

Następujące rzeczy są uważane za puste:

"" (an empty string) 
0 (0 as an integer) 
0.0 (0 as a float) 
"0" (0 as a string) 
NULL 
FALSE 
array() (an empty array) 
$var; (a variable declared, but without a value)

Oto wasze alternatywy :

is_null - Znajduje czy zmienna jest NULL

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

defined - Sprawdza, czy dana nazwany stałą istnieje

if(defined($_GET[var])) ... 
0

można po prostu sprawdzić, czy przezarray_key_exists('param', $_GET);.

Wyobraź sobie, że to twój adres URL: http://example.com/file.php?param. Ma parametr zapytania param, ale nie ma wartości. Tak więc jego wartość byłaby w rzeczywistości równa null.

array_key_exists('param', $_GET); zwraca true jeśli istnieje param; zwraca false, jeśli w ogóle nie istnieje.

Powiązane problemy