PHP Globalne zmienne - Superglobalne zmienne
- Poprzednia strona Sortowanie tablic PHP
- Następna strona Przetwarzanie formularzy w PHP
Superglobalne zmienne zostały wprowadzone w PHP 4.1.0 i są wbudowanymi zmiennymi dostępnymi w całym zakresie.
PHP Globalne zmienne - Superglobalne zmienne
Wiele zdefiniowanych przez PHP zmiennych jest "superglobalnych", co oznacza, że są dostępne w całym zakresie skryptu. Nie jest wymagane wykonywanie global $variable; aby do nich uzyskać dostęp.
Te superglobalne zmienne to:
- $GLOBALS
- $_SERVER
- $_REQUEST
- $_POST
- $_GET
- $_FILES
- $_ENV
- $_COOKIE
- $_SESSION
W tej sekcji omówimy niektóre superglobalne zmienne, a w późniejszych rozdziałach omówimy inne superglobalne zmienne.
$GLOBALS — odnosi się do wszystkich zmiennych dostępnych w globalnym zakresie
Zmienna globalna $GLOBALS jest używana do dostępu do zmiennych globalnych w dowolnym miejscu skryptu PHP (z funkcji lub metod).
PHP przechowuje wszystkie zmienne globalne w tablicy o nazwie $GLOBALS[index]. Nazwa zmiennej jest kluczem tablicy.
Poniższy przykład pokazuje, jak używać superglobalnej zmiennej $GLOBALS:
Przykład
<?php $x = 75; $y = 25; function addition() { $GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y']; } addition(); echo $z; ?>
W powyższym przykładzie, ponieważ z jest zmienną w tablicy $GLOBALS, można do niej uzyskać dostęp poza funkcją.
PHP $_SERVER
Zmienna globalna $_SERVER przechowuje informacje o nagłówkach, ścieżkach i pozycji skryptu.
Poniższy przykład pokazuje, jak używać niektórych elementów $_SERVER:
Przykład
<?php echo $_SERVER['PHP_SELF']; echo "<br>"; echo $_SERVER['SERVER_NAME']; echo "<br>"; echo $_SERVER['HTTP_HOST']; echo "<br>"; echo $_SERVER['HTTP_REFERER']; echo "<br>"; echo $_SERVER['HTTP_USER_AGENT']; echo "<br>"; echo $_SERVER['SCRIPT_NAME']; ?>
Poniższa tabela przedstawia najważniejsze elementy dostępne w $_SERVER:
Element/kod | Opis |
---|---|
$_SERVER['PHP_SELF'] | Zwraca nazwę pliku skryptu, w którym działa. |
$_SERVER['GATEWAY_INTERFACE'] | Zwraca wersję specyfikacji CGI używanego przez serwer. |
$_SERVER['SERVER_ADDR'] | Zwraca adres IP serwera, na którym działa skrypt. |
$_SERVER['SERVER_NAME'] | Zwraca nazwę hosta serwera, w którym działa skrypt (np. www.codew3c.com). |
$_SERVER['SERVER_SOFTWARE'] | Zwraca ciąg identyfikatora serwera (np. Apache/2.2.24). |
$_SERVER['SERVER_PROTOCOL'] | Zwraca nazwę i wersję protokołu komunikacji używanego do żądania strony (np. "HTTP/1.0"). |
$_SERVER['REQUEST_METHOD'] | Zwraca metodę żądania używaną do dostępu do strony (np. POST). |
$_SERVER['REQUEST_TIME'] | Zwraca czas戳 w momencie rozpoczęcia żądania (np. 1577687494). |
$_SERVER['QUERY_STRING'] | Zwraca ciąg zapytania, jeśli strona jest dostępna przez ciąg zapytania. |
$_SERVER['HTTP_ACCEPT'] | Zwraca nagłówki żądania z bieżącej prośby. |
$_SERVER['HTTP_ACCEPT_CHARSET'] | Zwraca nagłówek Accept_Charset z bieżącej prośby (np. utf-8, ISO-8859-1) |
$_SERVER['HTTP_HOST'] | Zwraca nagłówek Host z bieżącej prośby. |
$_SERVER['HTTP_REFERER'] | Zwraca pełny adres URL strony obecnej (niepewne, ponieważ nie wszyscy użytkownicy agentów wspierają to). |
$_SERVER['HTTPS'] | Czy przeszukać skrypt za pomocą protokołu HTTP bezpiecznego? |
$_SERVER['REMOTE_ADDR'] | Zwraca adres IP użytkownika przeglądającego bieżącą stronę. |
$_SERVER['REMOTE_HOST'] | Zwraca nazwę hosta użytkownika przeglądającego bieżącą stronę. |
$_SERVER['REMOTE_PORT'] | Zwraca port używany przez użytkownika do połączenia z serwerem Web. |
$_SERVER['SCRIPT_FILENAME'] | Zwraca absolutną ścieżkę do bieżącego skryptu. |
$_SERVER['SERVER_ADMIN'] | Wartość wskazuje parametr SERVER_ADMIN w pliku konfiguracyjnym Apache. |
$_SERVER['SERVER_PORT'] | Port używany przez serwer Web. Domyślna wartość to "80". |
$_SERVER['SERVER_SIGNATURE'] | Zwraca wersję serwera i nazwę wirtualnego hosta. |
$_SERVER['PATH_TRANSLATED'] | Podstawowa ścieżka w systemie plików bieżącego skryptu (nie katalogu głównego dokumentu). |
$_SERVER['SCRIPT_NAME'] | Zwraca ścieżkę bieżącego skryptu. |
$_SERVER['SCRIPT_URI'] | Zwraca URI bieżącej strony. |
PHP $_REQUEST
PHP $_REQUEST jest używany do zbierania danych formularza po wysłaniu HTML formularza.
Poniższy przykład pokazuje formularz zawierający pola wejściowe oraz przycisk wysyłania. Po kliknięciu przycisku wysyłania, dane formularza są wysyłane do skryptu wskazanego przez atrybut action etykiety <form>. W tym przykładzie wskazujemy sam plik, aby obsłużyć dane formularza. Jeśli potrzebujesz użyć innego pliku PHP do obsługi danych formularza, zmień nazwę na wybrany plik. Następnie możemy użyć superglobalnej zmiennej $_REQUEST, aby zbierać wartości pól wejściowych:
Przykład
<html> <body> <form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>"> Imię: <input type="text" name="fname"> <input type="submit"> </form> <?php $name = $_REQUEST['fname']; echo $name; ?> </body> </html>
PHP $_POST
PHP $_POST jest szeroko używany do zbierania danych formularza po wysłaniu HTML formularza z metodą "post". $_POST jest również często używany do przekazywania zmiennych.
Poniższy przykład pokazuje formularz zawierający pola wejściowe i przycisk wysyłania. Po kliknięciu przycisku wysyłania, dane formularza są wysyłane do pliku wskazanego przez atrybut action etykiety <form>. W tym przykładzie wskazujemy sam plik, aby obsłużyć dane formularza. Jeśli chcesz użyć innego pliku PHP do obsługi danych formularza, zmień nazwę na wybrany plik. Następnie możemy użyć superglobalnej zmiennej $_POST, aby zbierać wartości pól wejściowych:
Przykład
<html> <body> <form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>"> Imię: <input type="text" name="fname"> <input type="submit"> </form> <?php $name = $_POST['fname']; echo $name; ?> </body> </html>
PHP $_GET
PHP $_GET może również być używane do zbierania danych formularza wysyłanego po formularzu HTML (method="get").
$_GET może również zbierać dane wysyłane w URL.
Załóżmy, że mamy stronę zawierającą hiperłącze z parametrami:
<html> <body> <a href="test_get.php?subject=PHP&web=codew3c.com">Testuj $GET</a> </body> </html>
Kiedy użytkownik kliknie link "Testuj $GET", parametry "subject" i "web" są wysyłane do "test_get.php", a następnie możesz uzyskać dostęp do tych wartości za pomocą $_GET w "test_get.php".
Poniższy przykład to kod z pliku "test_get.php":
Przykład
<html> <body> <?php echo "W " . $_GET['web'] . " nauka " . $_GET['subject']; ?> </body> </html>
Wskazówka:Będziesz Formularze PHP W tym rozdziale nauczysz się więcej o $_POST i $_GET.
- Poprzednia strona Sortowanie tablic PHP
- Następna strona Przetwarzanie formularzy w PHP