簡單理解PHP超級全域性變數

2023-01-03 18:01:55
本篇文章給大家帶來了關於的相關知識,其中主要介紹了關於超級全域性變數的相關內容,超級全域性變數是一種特殊的變數型別,是內建的和預定義的,可以從任何範圍內存取,不需要執行任何特殊的程式碼段,下面一起來看一下,希望對大家有幫助。

理解PHP超級全域性

超級全域性變數是一種特殊的變數型別,因為它們可以從任何範圍內存取。可以從任何檔案、類、甚至函數中存取,而不需要執行任何特殊的程式碼段。

超全域性變數是內建的和預定義的。程式設計師可以通過PHP類庫來使用它們。請注意,在類庫中並非所有內建的預定義變數都是超全域性變數。

前提條件

要理解本文的內容,讀者應該具備以下條件。

  • 對 PHP 變數宣告技術有基本瞭解。
  • 對 PHP 有初步的瞭解。

PHP超級全域性變數簡介

超級全域性變數是在 PHP 4.1.0 中引入的,此後一直是 PHP 的一個重要組成部分。在PHP中大約有9個超全域性變數,有時被稱為automatic globals 。它們如下所述。

  • $GLOBALS

  • $_SERVER

  • $_GET

  • $_POST

  • $_REQUEST

  • $_SESSION

  • $_COOKIE

  • $_FILE

  • $_ENV

讓我們在下面的章節中討論這些超級全域性變數。

$GLOBALS

GLOBALS是一個PHP變數,用於存取PHP指令碼中的其他全域性變數。所有的PHP全域性變數都儲存在一個稱為GLOBALS是一個PHP變數,用於存取PHP指令碼中的其他全域性變數。所有的PHP全域性變數都儲存在一個稱為`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

$_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

$_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 字元。

$_POST

就像$_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?

儘管POSTGET 方法實現了相同的功能,但由於以下原因,POST 更受青睞。

  • POST方法對可以傳送的資料大小沒有限制。

  • POST方法可以同時傳送ASCII和二進位制資料。

  • POST方法不會在URL上顯示正在傳送的資訊,因此可以防止建立書籤。

  • POST方法使用一個HTTP header 來傳送資料。這促進了資料安全。

$_REQUEST

$_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

$_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是一個小檔案,由伺服器儲存在使用者的計算機中。它可以識別使用者。每當向伺服器發出請求時。通常會在請求的同時傳送一個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

$_FILES 是一個變數,包含使用HTTPPOST方法上傳的專案。 陣列包含幾個元素,如下所述。$_FILES

  • $_FILES['file']['name'] - 這通常是要上傳的檔案的原始名稱。

  • $_FILES['file']['type'] - 這是指被上傳檔案的型別。

  • $_FILES['file']['size'] - 以位元組為單位的檔案大小。

  • $_FILES['file']['tmp_name'] - 它指的是在伺服器上上傳的儲存檔案的臨時檔名。

  • $_FILE['file']['error']- 檔案上傳的相關錯誤程式碼。

總結

超全域性變數是PHP語言的核心。在PHP程式設計中需要這些變數來製作高功能的程式。因此,你可以利用這些資訊來製作高品質的應用程式。

推薦學習:《》

以上就是簡單理解PHP超級全域性變數的詳細內容,更多請關注TW511.COM其它相關文章!