PHP Globalne zmienne - Superglobalne zmienne

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; 
?>

Uruchom przykład

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'];
?>

Uruchom przykład

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>

Uruchom przykład

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>

Uruchom przykład

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>

Uruchom przykład

Wskazówka:Będziesz Formularze PHP W tym rozdziale nauczysz się więcej o $_POST i $_GET.