首頁 >後端開發 >PHP問題 >php全域數組有哪些

php全域數組有哪些

青灯夜游
青灯夜游原創
2022-05-17 15:42:302412瀏覽

php全域數組有9個:1、“$GLO​​BALS”,是由所有已定義的全域變數組成的陣列;2、“$_SERVER”,是包含諸如頭資訊、路徑和腳本位置的數組;3、“$_COOKIE”,由會話資料組成的陣列;4、“$_GET”;5、“$_ENV”等。

php全域數組有哪些

本教學操作環境:windows7系統、PHP8.1版、DELL G3電腦

php全域陣列

php全域數組全名為“超全域數組”或“超全域變數”,是PHP中特殊定義的陣列變量,之所以稱為超全域數組是因為這些數組在腳本中的任何地方、任何作用域內都可以訪問,如函數、類別、檔案等。

超全域數組變數是在全部作用域中始終可用的內建變數。

PHP中的超全域陣列包含以下9個:

  • #$GLOBALS:包含一個參考指向每個目前腳本的全域變數範圍內有效的變數。此數組的鍵名為全域變數的名稱。

  • $_SERVER:顯示或取得伺服器的相關資訊;

  • $_GET:把資料透過位址列傳遞到伺服器,這是方式必須是$_GET方式傳遞;

  • $_POST:透過表單傳送的資料必須是POST方式;

  • ##$_REQUEST:包含上面兩種資料傳遞方式(POST和GET);

  • $_COOKIE:處理客戶端的會話資料;

  • $_SESSION:處理伺服器端的會話資料;

  • $_FILES:上傳檔案需要用到的陣列;

  • $_ENV: 執行環境提交至腳本的變數

#$_GET


  • php全域數組有哪些
  • ##$_GET
    ##原理
    使用一:瀏覽器透過超連結傳送訊息給伺服器(預設為GET)

<meta>


//注意:信息如何传递!!!
<a>数据</a>


<meta>


<?php echo "<pre class="brush:php;toolbar:false">";
 	echo print_r($_GET);
	echo "
"; echo $_GET['name']; ?>
    注意:IE5. 5和IE6存在中文奇數亂碼的問題,解決? urlencode和urldecode。

<meta>


<?php $city=urlencode("大西安");
	echo "<a href=&#39;1.php?city={$city}&name=tan&#39;>数据";
?>


<meta>


<?php echo "<pre class="brush:php;toolbar:false">";
 	echo print_r($_GET);
	echo "
"; echo urldecode($_GET['city']); ?>
  • 使用二:瀏覽器透過表單傳送訊息給伺服器(最好使用$_POST)

    
    <meta>
    
    
    
    输入内容:
    
    <meta>
    
    
    
    
    
    禁止啟用register_globals:設定register_globals =off;啟用register_globals,以下程式碼造訪時若輸入http://localhost:88/1.php?a=10&b=20;將得到10 20。
      
      <meta>
      
      
      
      
      
    • $_POST
      • #透過post方式提交的數據,會被封裝到$_POST超全域數組中。

          使用一:瀏覽器透過表單傳送訊息給伺服器(有些資料必須使用post方式)
        • #
        
        <meta>
        
        
        
        用户名:
        密码:
        性别:
        籍贯:
        爱好:唱歌 跳舞 LOL
        个人简介:
        文件上传:
        
        <meta>
        
        
        "; 
        	//如何接收checkbox的所有数据(注意中括号[]):唱歌
        	echo print_r($_POST);
        	echo "
        "; $hobbies=$_POST['hobby']; foreach($hobbies as $key=>$val){ echo "
        ".$key." ".$val; } ?>
      • POST方式和GET方式的差異
      POST方式安全性好

      資料傳輸大小(POST方式大)儲存到收藏夾(GET方式)

      $_REQUEST

      $_REQUEST是包含了  $_POST、$_GET 和$_COOKIE 的數組,數組結構與$_POST 和$_GET類似。

      也就是說不管是使用 POST 還是使用 GET 方式提交的數據,都可以使用 $_REQUEST 來獲取,甚至可以使用 $_REQUEST 來獲取 COOKIE 的資訊。在 PHP5.3 中引入 request_order 屬性,我們可以透過在 php.ini 設定檔中修改 request_order 屬性的值,來控制 $_REQUEST 中包含的內容。
      • request_order 屬性的值可以是 G、P 和 C 這三個大寫的英文字母,它們分別代表 GET、POST 和 COOKIE。預設情況下request_order 屬性的預設值為request_order="GP",並不包含C,也就是說$_REQUEST 中並不包含COOKIE 的訊息,如果我們希望$_REQUEST 中包含COOKIE 的話,需要將其修改為request_order= "GPC"。

      注意:不要經常使用$_REQUEST(因為將多個資訊混合)。

      
      <meta>
      
      
      超链接
      
      用户名:
      密码:
      
      <meta>
      
      
      
      
      
      透過$_SERVER['REQUEST_METHOD']區分GET和POST

      
      <meta>
      
      
      
      
      
      #####$_SERVER########### ##$_SERVER是一個包含諸如頭資訊、路徑和腳本位置的陣列。數組的實體由web伺服器創建,並不能保證所有的伺服器都能產生所有的信息,伺服器可能忽略了一些信息,或者產生了一些其他的新的信息。和其他的超全域數組一樣,這是一個自動的全域變量,在所有的腳本中都有效,在函數或物件的方法中不需要使用global關鍵字存取它。 ###

      $_ENV

      获取服务器端的环境变量,通过修改php.ini的variables_order="EGPCS"启动。

      $_ENV数组中的内容是在PHP解析器运行时,从PHP所在服务器中的环境变量转变为PHP全局变量的。它们中许多都是由PHP所运行的系统决定的,完整的列表是不可能的,需要查看PHP所在服务器的系统文档以确定其特定的环境变量。

      $GLOBALS

      $GLOBALS是由所有已定义的全局变量组成的数组,变量名就是该数组的索引。

      • 包含了全部变量的全局组合数组。

      • 当定义一个全局变量,也会被$GLOBALS管理。
      
      <meta>
      
      
      ";
      	print_r($GLOBALS);
      	echo "
      "; ?>

      php全域數組有哪些

      $_FILES

      使用表单的file输入域上传文件时,必须使用post提交。但在服务器文件中,并不能通过$_POST超全局数组获取到表单中file域的内容。而$_FILES超全局变量是通过post方法传递的已上传文件项目组成的数组。$_FILES是一个二维数组,包含5个子数组元素,其中第一个下标是表单中file输入域的名称,第二个下标用于描述上传文件的属性。

      $_COOKIE

      $_COOKIE超全局数组是经由HTTP Cookies方法提交至脚本的变量。通常这些Cookies是由以前执行的PHP脚本通过setCookies()函数设置到客户端浏览器中的,当PHP脚本从客户浏览器提取了一个cookie后,它将自动把它转换成一个变量,可以通过这个$_COOKIE超全局数组和cookie的名称来存取指定的cookie值。

      $_SESSION

      会话控制是在服务器端使用session跟踪用户,当服务器页面中使用session_start()函数开启session后,就可以使用$_SESSION数组注册全局变量,用户就可以在整个网站中访问这些会员信息。

      说明:$_COOKIE、$_SESSION、$_REQUEST的区别

      在 PHP 中,cookie 就是服务器,它是留在客户端(浏览器)上的一个小的数据文件,通常用于标识用户信息,也称为浏览器缓存或 Cookies。

      $_COOKIE[] 全局数组存储了通过 HTTP COOKIE 传递到脚本的信息,PHP 可通过 setcookie() 函数设置 COOKIE 的值,用 $_COOKIE[] 数组接收 COOKIE 的值,$_COOKIE[] 数组的索引为 COOKIE 的名称。

      session 是一种客户与网站(服务器)更为安全的对话方式,一旦开启了 session 会话,便可以在网站的任何页面使用(保持)这个会话,从而让访问者与网站之间建立了一种“对话”机制。但是 session 不同于 cookie,必须先启动,才能生效。

      $_SESSION[] 数组用于获取会话变量的相关信息。

      $_REQUEST 支持 $_GET 和 $_POST 发送过来的请求,即 get 和 post 它都可以接受,浏览器地址栏中的数据显示不显示要看传递的方法,get 会显示在 url 中(有字符限制),post 不会显示在 url 中,可以传递任意多的数据(只要服务器支持)。

      默认情况下,$_REQUEST[] 数组包含了 $_GET、$_POST 和 $_COOKIE 的数组。

      推荐学习:《PHP视频教程

      以上是php全域數組有哪些的詳細內容。更多資訊請關注PHP中文網其他相關文章!

      陳述:
      本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn