Przejdź do głównej treści

Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych

Zawód: Technik informatyk, Technik programista

Kategorie: PHP

Słowa kluczowe: $_SESSION w PHP Cookie PHP

W języku PHP zmienna predefiniowana $GLOBALS zawiera

A. wszystkie zmienne dostępne w zasięgu globalnym skryptu.
Dobrze. $GLOBALS zawiera wszystkie zmienne zasięgu globalnego, dostępne pod ich nazwami.
B. zmienne przesyłane do skryptu za pomocą ciastek (cookie).
Źle. Wartości ciasteczek zawiera $_COOKIE.
C. zmienne przesyłane do skryptu za pomocą formularza.
Źle. Dane z formularza trafiają do $_POST albo $_GET.
D. zmienne środowiskowe systemu operacyjnego serwera.
Źle. Zmienne środowiskowe zawiera $_ENV, a dane o serwerze $_SERVER.

$GLOBALS to tablica asocjacyjna, w której kluczami są nazwy wszystkich zmiennych zasięgu globalnego, a wartościami ich wartości. Zmienna $licznik utworzona poza funkcją jest dostępna jako $GLOBALS["licznik"], także wewnątrz funkcji, gdzie zwykła nazwa zmiennej globalnej nie działa.

W PHP funkcja ma własny zasięg zmiennych, więc do zmiennej globalnej sięga się przez $GLOBALS albo słowo global. Jak inne zmienne superglobalne (na przykład $_POST czy $_SESSION), tablica jest dostępna w każdym miejscu skryptu. W praktyce lepiej przekazywać dane do funkcji przez parametry, bo kod zależny od zmiennych globalnych trudno testować.

Zapis $GLOBALS["licznik"] = 5; wewnątrz funkcji zmienia wartość zmiennej globalnej, a nie tworzy kopii lokalnej.

Każda z błędnych odpowiedzi opisuje inną tablicę superglobalną. Zmienne środowiskowe systemu operacyjnego zawiera $_ENV, a część informacji o serwerze i żądaniu - $_SERVER. Nazwa $GLOBALS kojarzy się z czymś „globalnym dla serwera”, ale dotyczy wyłącznie zmiennych bieżącego skryptu.

Dane z formularza trafiają do $_POST albo $_GET, zależnie od metody wysyłania określonej atrybutem method. Wartości ciasteczek zawiera $_COOKIE.

Wszystkie te tablice mają podobną budowę - nazwa zaczyna się od podkreślenia, a dane są dostępne w każdej funkcji - stąd łatwo je pomylić. $GLOBALS jako jedyna nie ma podkreślenia i jako jedyna przechowuje wszystkie zmienne z zasięgu globalnego skryptu, niezależnie od tego, skąd pochodzą ich wartości.

Dobrą metodą jest zapamiętanie źródła danych: formularz, ciasteczko, sesja, serwer i środowisko mają własne tablice, a $GLOBALS zbiera zmienne samego skryptu.

Wymagane logowanie

Ocenianie trudności pytań jest dostępne tylko dla zalogowanych użytkowników. Zaloguj się, aby skorzystać z pełni możliwości platformy.

Twoja ocena pomoże innym uczniom w przygotowaniu do egzaminu, a Tobie pozwoli na dostęp do spersonalizowanych statystyk.

Zgłoś błąd w pytaniu

Rozwiń sekcję i zmień pole, którego dotyczy błąd. Wysłane zostaną tylko zmienione sekcje.

Błędna kwalifikacja
Błąd w treści pytania
Błąd w treści odpowiedzi
Błąd w obrazie
Dane kontaktowe (opcjonalnie)
Podaj email, jeśli chcesz otrzymać informację o rozpatrzeniu zgłoszenia.