>  기사  >  백엔드 개발  >  PHP의 전역 배열은 무엇입니까

PHP의 전역 배열은 무엇입니까

青灯夜游
青灯夜游원래의
2022-05-17 15:42:302387검색

PHP에는 9개의 전역 배열이 있습니다. 1. "$GLOBALS"는 정의된 모든 전역 변수로 구성된 배열입니다. 2. "$_SERVER"는 헤더 정보, 경로 및 스크립트 위치를 포함하는 배열입니다. , 세션 데이터로 구성된 배열 4. "$_GET" 5. "$_ENV" 등

PHP의 전역 배열은 무엇입니까

이 튜토리얼의 운영 환경: Windows 7 시스템, PHP 버전 8.1, DELL G3 컴퓨터

php 전역 배열

php 전역 배열의 전체 이름은 "수퍼글로벌 배열" 또는 "수퍼글로벌 변수"입니다. , 이는 PHP에서 특별히 정의된 배열 변수를 슈퍼전역 배열이라고 합니다. 왜냐하면 이러한 배열은 스크립트의 어느 곳에서나 함수, 클래스, 파일 등과 같은 모든 범위에서 액세스할 수 있기 때문입니다.

수퍼글로벌 배열 변수는 모든 범위에서 항상 사용할 수 있는 내장 변수입니다.

PHP의 슈퍼전역 배열에는 다음 9개가 포함됩니다.

  • $GLOBALS: 현재 스크립트의 전역 변수 범위에서 유효한 각 변수에 대한 참조를 포함합니다. 이 배열의 키 이름은 전역 변수의 이름입니다.

  • $_SERVER: 서버 관련 정보 표시 또는 가져오기

  • $_GET: 주소 표시줄을 통해 서버에 데이터를 전달합니다. 이 방법은 $_GET이어야 합니다. 전송된 데이터는 POST 모드여야 합니다.

  • $_REQUEST: 위의 두 가지 데이터 전송 방법(POST 및 GET)을 포함합니다.

  • $_COOKIE: 클라이언트의 세션 데이터를 처리합니다. 서버 종료 세션 데이터

  • $_FILES: 파일 업로드에 필요한 배열

  • $_ENV: 실행 환경에서 스크립트에 제출된 변수

$_GET

원칙

사용 1: 브라우저는 하이퍼링크를 통해 서버에 정보를 전송합니다(기본값은 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']); ?> PHP의 전역 배열은 무엇입니까
  • 사용 2: 브라우저가 양식을 통해 서버에 정보를 보냅니다($_POST를 사용하는 것이 가장 좋습니다)

<meta>


输入内容:

<meta>




    register_globals 비활성화: setregister_globals=off;
  • register_globals를 활성화합니다. 다음 코드에 액세스하면 //localhost:88/1.php?a=10&b=20; 10 20이 표시됩니다.
    
    <meta>
    
    
    
    
    
  • $_POST
    • post를 통해 제출된 데이터는 $_POST 슈퍼 글로벌 배열로 캡슐화됩니다.

    사용방법 1: 브라우저는 폼을 통해 서버에 정보를 전송합니다(일부 데이터는 반드시 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 정보를 얻을 수도 있습니다. request_order 속성은 PHP5.3에서 도입되었습니다. php.ini 구성 파일의 request_order 속성 값을 수정하여 $_REQUEST에 포함된 내용을 제어할 수 있습니다.

    request_order 속성의 값은 각각 GET, POST 및 COOKIE를 나타내는 영문 대문자 G, P, C일 수 있습니다. 기본적으로 request_order 속성의 기본값은 request_order="GP"이며, 이는 C를 포함하지 않습니다. 이는 $_REQUEST에 COOKIE 정보가 포함되어 있지 않음을 의미합니다. $_REQUEST에 COOKIE가 포함되도록 하려면 이를 request_order로 수정해야 합니다. = "GPC". 참고:

    $_REQUEST를 너무 자주 사용하지 마세요(여러 메시지가 혼합되어 있으므로).

    
    <meta>
    
    
    超链接
    
    用户名:
    密码:
    
    <meta>
    
    
    
    
    

    $_SERVER['REQUEST_METHOD']

    
    <meta>
    
    
    
    
    

    $_SERVER

    • $_SERVER는 헤더 정보, 경로, 스크립트 위치 등의 정보가 포함된 배열입니다. 배열의 엔터티는 웹 서버에 의해 생성되며 모든 서버가 모든 정보를 생성할 수 있다는 보장은 없습니다. 서버가 일부 정보를 무시하거나 다른 새로운 정보를 생성할 수도 있습니다. 다른 슈퍼전역 배열과 마찬가지로 이는 모든 스크립트에서 사용할 수 있는 자동 전역 변수입니다. 함수나 개체 메서드에서 이에 액세스하기 위해 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으로 문의하세요.