超級全域性變數是一種特殊的變數型別,因為它們可以從任何範圍內存取。可以從任何檔案、類、甚至函數中存取,而不需要執行任何特殊的程式碼段。
超全域性變數是內建的和預定義的。程式設計師可以通過PHP類庫來使用它們。請注意,在類庫中並非所有內建的預定義變數都是超全域性變數。
要理解本文的內容,讀者應該具備以下條件。
超級全域性變數是在 PHP 4.1.0 中引入的,此後一直是 PHP 的一個重要組成部分。在PHP中大約有9個超全域性變數,有時被稱為automatic globals
。它們如下所述。
$GLOBALS
$_SERVER
$_GET
$_POST
$_REQUEST
$_SESSION
$_COOKIE
$_FILE
$_ENV
讓我們在下面的章節中討論這些超級全域性變數。
GLOBALS[index] 的陣列中。
index 中儲存著
variable name` 。
下面是一個使用超全域性變數$GLOBAL
的例子:)
<!doctype html>
<html>
<head>
<title>GLOBAL example</title>
</head>
<body>
<?php
//php Script
// Varriable declaration
$a = 5;
$b = 6;
function multiplication(){
$GLOBALS['c'] = $GLOBALS['a']* $GLOBALS['b'];
}
multiplication();
echo $c;
?>
</body>
</html>
登入後複製
在上面的例子中,變數$c
在函數內部和外部都可以存取,因為它在$GLOBALS
陣列中。
$_SERVER
是一個超全域性變數,用於儲存PHP指令碼的資訊頭、路徑和位置。 變數有幾個元素被儲存。它們包括$_SERVER
$_SERVER['PHP_SELF'] - 它返回當前正在執行的指令碼的檔名。
$_SERVER['SERVER_NAME'] - 這返回託管網站的伺服器的名稱。
$_SERVER['HTTP_HOST'] - 這將返回當前請求的主機頭。
$_SERVER['SCRIPT_NAME'] - 這返回當前指令碼的路徑。
下面是一個顯示如何使用上述元素的範例程式碼。
<!doctype html>
<html>
<head>
<title> $_SERVER example</title>
</head>
<body>
<?php
// PHP script
echo $_SERVER['PHP_SELF'];
echo "<br>";
echo $_SERVER['SERVER_NAME'];
echo "<br>";
echo $_SERVER['HTTP_HOST'];
echo "<br>";
echo $_SERVER['SCRIPT_NAME'];
?>
</body>
</html>
登入後複製
上述程式碼的輸出將包括。
$_GET
變數是一個PHP超全域性變數,用於收集HTML表單提交後的資料。HTML表單的結構是這樣的:$_GET
作為一個方法。$_GET
也可以用來檢索在uniform resource locator
中傳送的資料。
下面是一個例子,說明如何在HTML表單中實現$_GET
變數。
<!doctype html>
<html>
<head>
<title>$_GET example</title>
</head>
<body>
<!-- html form -->
<form action="" method="GET">
<label>Name</label>
<input type="text" name="Name">
<label>Email</label>
<input type="text" name="Email">
<button>Submit</button>
</form>
</body>
</html>
登入後複製
當使用者點選Submit
按鈕時,表單中的資訊會用GET
方法傳送,並顯示在URL
。然而,每次最多隻能傳送2048
字元。
就像$_GET
變數一樣,$_POST
收集來自HTML表單的值。使用這種方法傳送的資訊不會顯示在URL中。一次可以傳送的字元數也沒有限制。
下面是一個例子。
<!doctype html>
<html>
<head>
<title>$_POST example</title>
</head>
<body>
<!-- html form -->
<form action="" method="POST">
<label>Name</label>
<input type="text" name="Name">
<label>Email</label>
<input type="text" name="Email">
<button>Submit</button>
</form>
</body>
</html>
登入後複製
儘管POST
和GET
方法實現了相同的功能,但由於以下原因,POST
更受青睞。
POST方法對可以傳送的資料大小沒有限制。
POST方法可以同時傳送ASCII和二進位制資料。
POST方法不會在URL上顯示正在傳送的資訊,因此可以防止建立書籤。
POST方法使用一個HTTP header
來傳送資料。這促進了資料安全。
$_REQUEST
變數是一個PHP超全域性,用於在提交表單後收集資料。它包含了$_GET
,$_POST
,甚至預設的$_COOKIE
的內容。各個欄位的資料可以由PHP使用$_REQUEST
變數來收集。
下面的例子顯示瞭如何使用$_REQUEST
這個變數。
<!doctype html>
<html>
<head>
<title>$_REQUEST example</title>
</head>
<body>
<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="POST">
<label>Name</label>
<input type="text" myname="Name">
<button>Submit</button>
</form>
<?php
if($_SERVER["REQUEST_METHOD"]=="POST"){
$name = $_REQUEST['myname'];
if(!empty($myname))
{
echo $myname;
}else{
echo "Empty name";
}
}
?>
</body>
</html>
登入後複製
上述程式碼的輸出將是表單中已提交的name
。如果沒有提交名字,它將列印一個資訊Empty name
。
$_SESSION
變數是一個PHP的超級全域性,它可以在使用者每次開啟網站時儲存和利用有關網站使用者的資訊,直到網站關閉。
每次使用者存取網站時,都會啟動一個對談。下面的函數被用來在PHP程式碼中啟動一個對談。
session_start()
登入後複製
對談開始後,需要使用$_SESSION
變數進行設定。
當使用者離開一個網站時,對談被自動銷燬。這是在使用者不知情的情況下使用下面的PHP函數完成的。
session_destroy()
登入後複製
下面的例子演示了$_SESSION
的使用。
<? php
session_start();
?>
<!doctype html>
<html>
<head>
<title>$_SESSION demonstration code</title>
</head>
<body>
<?php
//Set session varriables
$_SESSION["name"]="Mackrine";
$_SESSION["favcolor"]="Blue";
echo "session varriables are set";
?>
</body>
</html>
登入後複製
Cookie是一個小檔案,由伺服器儲存在使用者的計算機中。它可以識別使用者。每當向伺服器發出請求時。通常會在請求的同時傳送一個cookie。PHP 使用setcookie()
函數建立 cookie。
setcookie(cookie_name,cookie_value, expiry, path, domain,secure,httponly)
登入後複製
該語法有許多引數。然而,只有name
引數是必需的。
在建立之後,可以使用超全域性$_COOKIE
變數來檢索cookie。下面的程式碼顯示瞭如何建立和檢索一個cookie。
<?php
$cookie_name = "uname";
$cookie_value = "Mackrine";
//setting cookie
setcookie($cookie_name, $cookie_value, time()+(86400*30),"/");
?>
<!doctype html>
<html>
<body>
<?php
if(isset($_COOKIE[$cookie_name]))
{
echo "Cookie name:" .$cookie_name;
echo "<br>";
echo "Cookie value:" .$cookie_value;
}
else
{
echo $cookie_name. " is not set!";
}
?>
</body>
</html>
登入後複製
只有在過期的情況下,才可以使用setcookie()
函數刪除cookie。
$_FILES
是一個變數,包含使用HTTPPOST方法上傳的專案。 陣列包含幾個元素,如下所述。$_FILES
$_FILES['file']['name'] - 這通常是要上傳的檔案的原始名稱。
$_FILES['file']['type'] - 這是指被上傳檔案的型別。
$_FILES['file']['size'] - 以位元組為單位的檔案大小。
$_FILES['file']['tmp_name'] - 它指的是在伺服器上上傳的儲存檔案的臨時檔名。
$_FILE['file']['error']- 檔案上傳的相關錯誤程式碼。
超全域性變數是PHP語言的核心。在PHP程式設計中需要這些變數來製作高功能的程式。因此,你可以利用這些資訊來製作高品質的應用程式。
推薦學習:《》
以上就是簡單理解PHP超級全域性變數的詳細內容,更多請關注TW511.COM其它相關文章!