2010-07-01 15 views
6

Co zwraca $ _GET, gdy indeks nie jest ustawiony? (. Nie można znaleźć coś w podręczniku php około $ _GET)

Napisałem to, by sprawdzić, czy w $ _GET [ 'id'] isset - a jeśli tak nie jest, ustawiona na false $ id:

<?php $id = (isset($_GET['id'])) ? $_GET['id'] : false ?> 

Odpowiedz

14

$ _GET jest zwykłą tablicą, więc zachowuje się dokładnie tak samo jak każda inna tablica.

Oznacza to, że zwróci wartość NULL dla zmiennej i podniesie wskaźnik "niezdefiniowany indeks" podczas wywoływania nieistniejącego indeksu.

Jedyną rzeczą, którą musisz mieć świadomość z $ _GET jest to, że zawiera niebezpieczne (modyfikowalny przez użytkownika) dane

+0

Tak, jestem tego świadomy, więc używam przygotowanych instrukcji dla SQL, ponieważ ten identyfikator od momentu przejścia do zapytania. Dzięki! :) – Rihards

0

Jeśli indeks nie jest ustawiony, uruchomienie isset() tego indeksu w ramach $_GET zwraca wartość false.

3

rozbrojony indeksuje mieć wartość NULL. Uzyskanie dostępu do nich spowoduje zgłoszenie (chyba że poziom błędu jest ustawiony na połknięcie zawiadomień).

+4

Warto nadmienić, że isset() jest konstrukcją językową, a nie funkcją, i dlatego wpisanie '$ _GET ['nonexistent_key']' wewnątrz isset() nie powoduje powiadomienia. – Hammerite

1

Jest to przykład w instrukcji: PHP: $_GET.

Odpowiedni fragment przykładowego skryptu jest:

if(isset($_GET["a"])) echo "a is set\n"; 

Ta część skryptu wypisuje „a jest ustawiony” kiedy a jest przekazywana jako parametr poprzez URL. http://path/to/script.php?a

0

$_GET jest superglobalarray:

Jako taka, zgodnie z zasadami dostępu do kluczy tablicy:

Próba uzyskania dostępu do klucza tablicy, która nie został zdefiniowany jest taka sama jak uzyskiwanie dostępu do każdej innej niezdefiniowanej zmiennej: komunikat o błędzie: E_NOTICE - zostanie wyświetlony błąd, a wynikiem będzie . Będzie to .

Powiązane problemy