超級全域性變數在PHP 4.1.0之後被啟用, 是PHP系統中自帶的變數,在一個指令碼的全部作用域中都可用。
PHP 中預定義了幾個超級全域性變數(superglobals),他們在一個指令碼的全部作用於中都可用。(總之都是一堆變數名為大寫的變數)
- $GLOBALS
- $_SERVER
- $_REQUEST
- $_POST
- $_GET
- $_FILES
- $_ENV
- $_COOKIE
- $_SESSION
PHP 超級全域性變數
先理清前四個,$_FILES,$_ENV,$_COOKIE,$_SESSION 暫不展開討論。
$GLOBALS
$GLOBALS
是PHP的一個超級全域性變數組,在一個 PHP 指令碼的全部作用域中都可以訪問。
$GLOBALS
是一個包含了全部變數的全域性組合陣列。變數的名字就是陣列的鍵。
<?php
$x = 25;
$y = 256;
function addition()
{
$GLOBALS['z'] = $GLOBALS['x'] * $GLOBALS['y'];
}
addition();
echo $z;
$_SERVER
$SERVER
是一個包含了諸如頭資訊(header)、路徑(path)、以及指令碼位置(script locations)等等資訊的陣列。這個陣列中的專案由 Web 伺服器建立。不能保證每個伺服器都提供全部專案;伺服器可能會忽略一些。
<?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'];
詳細的可以查閱關於
$_SERVER
的資料。
$_REQUEST
$_REQUEST
用於收集HTML表單提交的資料。
如下例項顯示了一個輸入欄位input
及提交按鈕submit
的表單form
。 當使用者透過點選 "Submit
" 按鈕提交表單資料時, 表單資料將傳送至 <form>
標籤中action
屬性中指定的指令碼檔案。 在這個例項中,我們指定檔案來處理表單資料。如果你希望其他的PHP檔案來處理該資料,你可以修改該指定的指令碼檔名。 然後,我們可以使用超級全域性變數 $_REQUEST 來收集表單中的input
欄位資料:
<html>
<body>
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
Name: <input type="text" name="fname">
<input type="submit">
</form>
<?php
$name = $_REQUEST['fname'];
echo $name;
?>
</body>
</html>
$_POST
$POST
被廣泛用於收集表單資料,在 HTMLform
標籤指定該屬性:"method" = "post"。
如下例項顯示了一個輸入欄位input
及提交按鈕submit
的表單form
。 當使用者透過點選 "Submit
" 按鈕提交表單資料時, 表單資料將傳送至
標籤中action
屬性中指定的指令碼檔案。 在這個例項中,我們指定檔案來處理表單資料。如果你希望其他的PHP檔案來處理該資料,你可以修改該指定的指令碼檔名。 然後,我們可以使用超級全域性變數$_POST
來收集表單中的input
欄位資料:
<html>
<body>
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
Name: <input type="text" name="fname">
<input type="submit">
</form>
<?php
$name = $_POST['fname'];
echo $name;
?>
</body>
</html>
$_GET
PHP $_GET
同樣被廣泛應用於收集表單資料,在HTMLform
標籤的指定該屬性:"method="get"。$_GET
也可以收集URL中傳送的資料。
<html>
<body>
<a href="test_get.php?subject=PHP&web=learnku.com">Test $GET</a>
</body>
</html>
當使用者點選連結 "Test $GET", 引數 "subject" 和 "web" 將傳送至"test_get.php",你可以在 "test_get.php" 檔案中使用 $_GET 變數來獲取這些資料。
test_get.php
<html>
<body>
<?php
echo "Study " . $_GET['subject'] . " @ " . $_GET['web'];
?>
</body>
</html>
本作品採用《CC 協議》,轉載必須註明作者和本文連結