Superglobalne zostały wprowadzone w PHP 4.1.0 i są wbudowane zmienne, które są zawsze dostępne we wszystkich zakresach.
PHP zmienne globalne - superglobalne
Kilka predefiniowane zmienne w PHP są "superglobals" , co oznacza, że są one zawsze dostępne, niezależnie od zakresu - i można uzyskać do nich dostęp z dowolnej funkcji, klasy lub plik bez konieczności robić nic szczególnego.
Zmienne PHP superglobalną są:
- $ GLOBALS
- $ _SERVER
- $ _REQUEST
- $ _POST
- $ _GET
- $ _FILES
- $ _ENV
- $ _COOKIE
- $ _SESSION
Ten rozdział wyjaśni niektóre superglobals, a reszta zostanie wyjaśnione w późniejszych rozdziałach.
PHP $ GLOBALS
$ GLOBALS jest bardzo zmienna globalna PHP, który jest używany do dostępu do zmiennych globalnych z dowolnego miejsca w skrypcie PHP (również od wewnątrz funkcji lub metody).
PHP przechowuje wszystkie zmienne globalne w tablicy o nazwie $ GLOBALS [ index ]. Indeks przechowuje nazwę zmiennej.
Poniższy przykład pokazuje, jak używać super globalna zmienna $ GLOBALS:
Przykład
<?php
$x = 75;
$y = 25;
function addition() {
$GLOBALS['z'] =
$GLOBALS['x'] + $GLOBALS['y'];
}
addition();
echo $z;
?>
Uruchomić przykład » W powyższym przykładzie, ponieważ oo jest zmienna występuje w tablicy $ globalnych, jest również dostępny z zewnątrz funkcji!
PHP $ _SERVER
$ _SERVER jest bardzo zmienna globalna PHP, który posiada informacje o nagłówkach, ścieżek i miejsc skryptów.
Poniższy przykład pokazuje, jak korzystać z niektórych elementów 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'];
?>
Uruchomić przykład » Poniższa tabela zawiera najważniejsze elementy, które mogą wejść do środka $ _SERVER:
Element / Code | Opis |
---|---|
$ _SERVER [ 'PHP_SELF'] | Zwraca nazwę pliku skryptu aktualnie wykonującego |
$ _SERVER [ 'GATEWAY_INTERFACE'] | Zwraca wersję Common Gateway Interface (CGI) serwer używa |
$ _SERVER [ 'SERVER_ADDR'] | Zwraca adres IP serwera hosta |
$ _SERVER [ 'SERVER_NAME'] | Zwraca nazwę serwera hosta (such as www.w3ii.com) |
$ _SERVER [ 'SERVER_SOFTWARE'] | Zwraca ciąg identyfikacyjny serwera (such as Apache/2.2.24) |
$ _SERVER [ 'SERVER_PROTOCOL'] | Zwraca nazwę i wersję protokołu informacyjnego (such as HTTP/1.1) |
$ _SERVER [ 'REQUEST_METHOD'] | Zwraca metodę żądania używanego do uzyskania dostępu do strony (such as POST) |
$ _SERVER [ 'REQUEST_TIME'] | Zwraca znacznik czasowy początku żądanie (such as 1377687496) |
$ _SERVER [ 'QUERY_STRING'] | Zwraca ciąg kwerendy, jeśli strona jest dostępna za pośrednictwem łańcucha zapytania |
$ _SERVER [ 'HTTP_ACCEPT'] | Zwraca Zebrane nagłówek z aktualnego zapytania |
$ _SERVER [ 'HTTP_ACCEPT_CHARSET'] | Zwraca nagłówek Accept_Charset z bieżącego żądania (jak UTF-8, ISO-8859-1) |
$ _SERVER [ 'HTTP_HOST'] | Zwraca nagłówka hosta z aktualnego zapytania |
$ _SERVER [ 'HTTP_REFERER'] | Zwraca pełny adres URL bieżącej strony (nie wiarygodne, ponieważ nie wszystkie klienty użytkownika obsługują go) |
$ _SERVER [ 'HTTPS'] | Jest skrypt pytani przez bezpieczny protokół HTTP |
$ _SERVER [ 'REMOTE_ADDR'] | Zwraca adres IP, z którego użytkownik ogląda bieżącą stronę |
$ _SERVER [ 'REMOTE_HOST'] | Zwraca nazwę hosta, z którym użytkownik ogląda bieżącą stronę |
$ _SERVER [ 'REMOTE_PORT'] | Zwraca port używany na komputerze użytkownika w celu komunikowania się z serwerem WWW |
$ _SERVER [ 'SCRIPT_FILENAME'] | Zwraca bezwzględną ścieżkę skryptu aktualnie wykonującego |
$ _SERVER [ 'SERVER_ADMIN'] | Zwraca wartość podaną w dyrektywie SERVER_ADMIN w pliku konfiguracyjnym serwera WWW (jeśli skrypt pracuje na wirtualnym hoście, to będzie wartość określona dla danego wirtualnego hosta) (such as [email protected]) |
$ _SERVER [ 'SERVER_PORT'] | Zwraca port na serwerze, używany przez serwer do komunikacji internetowej (such as 80) |
$ _SERVER [ 'SERVER_SIGNATURE'] | Zwraca wersję serwera i nazwę hosta wirtualnego, które są dodawane do stron generowanych przez serwer |
$ _SERVER [ 'PATH_TRANSLATED'] | Zwraca ścieżkę opartą systemu plików do skryptu |
$ _SERVER [ 'SCRIPT_NAME'] | Zwraca ścieżkę bieżącego skryptu |
$ _SERVER [ 'SCRIPT_URI'] | Zwraca URI bieżącej strony |
PHP $ _REQUEST
PHP $ _REQUEST służy do zbierania danych po przesłaniu formularza HTML.
Poniższy przykład przedstawia formularz z pola wejściowego i przycisk Wyślij. Gdy użytkownik wprowadza dane, klikając na "Submit" , dane formularz jest wysyłany do pliku podanego w action atrybutu <form> tag. W tym przykładzie, zwracamy się do tego pliku sam na przetwarzanie danych formularzy. Jeśli chcesz użyć innego pliku PHP do przetwarzania danych formularza, należy wymienić, że z nazwy pliku do wyboru. Następnie możemy użyć super zmienna globalna $ _REQUEST do zbierania wartość pola wejściowego:
Przykład
<html>
<body>
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
Name: <input type="text" name="fname">
<input type="submit">
</form>
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
// collect value of input field
$name = $_REQUEST['fname'];
if (empty($name)) {
echo "Name
is empty";
} else {
echo $name;
}
}
?>
</body>
</html>
Uruchomić przykład » PHP $ _POST
PHP $ _POST jest powszechnie wykorzystywane do zbierania danych z formularza po przesłaniu formularza HTML z method = „post”. $ _POST jest również szeroko stosowany do przekazywania zmiennych.
Poniższy przykład przedstawia formularz z pola wejściowego i przycisk Wyślij. Gdy użytkownik wprowadza dane, klikając na "Submit" , dane formularz jest wysyłany do pliku podanego w action atrybutu <form> tag. W tym przykładzie możemy wskazać plik do samej formy przetwarzania danych. Jeśli chcesz użyć innego pliku PHP do przetwarzania danych formularza, należy wymienić, że z nazwy pliku do wyboru. Następnie możemy użyć super zmienna globalna $ _POST zbierać wartość pola wejściowego:
Przykład
<html>
<body>
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
Name: <input type="text" name="fname">
<input type="submit">
</form>
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
// collect value of input field
$name = $_POST['fname'];
if (empty($name)) {
echo "Name
is empty";
} else {
echo $name;
}
}
?>
</body>
</html>
Uruchomić przykład » PHP $ _GET
PHP $ _GET mogą być również wykorzystywane do zbierania danych z formularza po przesłaniu formularza HTML z method = „get”.
$ _GET może także zbierać dane wysłane w adresie URL.
Załóżmy, że mamy stronę HTML zawierającą hiperłącze z parametrami:
<html>
<body>
<a href="test_get.php?subject=PHP&web=w3ii.com">Test $GET</a>
</body>
</html>
Gdy użytkownik kliknie na link "Test $GET" , parametry "subject" i "web" są wysyłane do "test_get.php" , a następnie można uzyskać dostęp do swoich wartości w "test_get.php" z $ _GET.
Poniższy przykład pokazuje kod "test_get.php" :
Przykład
<html>
<body>
<?php
echo "Study " . $_GET['subject'] . " at " . $_GET['web'];
?>
</body>
</html>
Uruchomić przykład » Wskazówka: Dowiesz się więcej o $ _POST i $ _GET w formularzach PHP rozdziału.