• 技术文章 >后端开发 >PHP问题

    php全局数组有哪些

    青灯夜游青灯夜游2022-09-26 19:33:56原创1116

    php全局数组有9个:1、“$GLOBALS”,是由所有已定义的全局变量组成的数组;2、“$_SERVER”,是包含诸如头信息、路径和脚本位置的数组;3、“$_COOKIE”,由会话数据组成的数组;4、“$_GET”;5、“$_ENV”等。

    php入门到就业线上直播课:进入学习

    本教程操作环境:windows7系统、PHP8.1版、DELL G3电脑

    php全局数组

    php全局数组全称“超全局数组”或“超全局变量”,是PHP中特殊定义的数组变量,之所以称为超全局数组是因为这些数组在脚本中的任何地方、任何作用域内都可以访问,如函数、类、文件等。

    超全局数组变量是在全部作用域中始终可用的内置变量。

    PHP中的超全局数组包括以下9个:

    $_GET

    <html>
    <head>
    <meta http-equiv="content-type" content="text/html;charset=utf-8"/>
    </head>
    <body>
    //注意:信息如何传递!!!
    <a href="1.php?city=XI'AN&name=tan">数据</a>
    </body>
    </html>
    <html>
    <head>
    <meta http-equiv="content-type" content="text/html;charset=utf-8"/>
    </head>
    <body>
    <?php
    	echo "<pre>";
     	echo print_r($_GET);
    	echo "</pre>";
    	echo $_GET['name'];
    ?>
    </body>
    </html>
    <html>
    <head>
    <meta http-equiv="content-type" content="text/html;charset=utf-8"/>
    </head>
    <body>
    <?php
    	$city=urlencode("大西安");
    	echo "<a href='1.php?city={$city}&name=tan'>数据</a>";
    ?>
    </body>
    </html>
    <html>
    <head>
    <meta http-equiv="content-type" content="text/html;charset=utf-8"/>
    </head>
    <body>
    <?php
    	echo "<pre>";
     	echo print_r($_GET);
    	echo "</pre>";
    	echo urldecode($_GET['city']);
    ?>
    </body>
    </html>
    <html>
    <head>
    <meta http-equiv="content-type" content="text/html;charset=utf-8"/>
    </head>
    <body>
    <form action='1.php' method='GET'>
    输入内容:<input type='text' name='ha'/>
    <input type='submit' name='查询'/>
    </form>
    </body>
    </html>
    <html>
    <head>
    <meta http-equiv="content-type" content="text/html;charset=utf-8"/>
    </head>
    <body>
    <?php
    	echo $_GET['ha'];
    ?>
    </body>
    </html>
    <html>
    <head>
    <meta http-equiv="content-type" content="text/html;charset=utf-8"/>
    </head>
    <body>
    <?php
    	echo $a." ".$b;
    ?>
    </body>
    </html>

    $_POST

    <html>
    <head>
    <meta http-equiv="content-type" content="text/html;charset=utf-8"/>
    </head>
    <body>
    <form action='1.php' method='POST'>
    用户名:<input type="text" name="username"/><br/>
    密码:<input type="password" name="password"/><br/>
    性别:<input type="radio" name="sex" value="woman">女</input><input type="radio" name="sex" value="man">男</input><br/>
    籍贯:<select name="city">
    <option value="西安">西安</option>
    <option value="北京">北京</option>
    <option value="哈尔滨">哈尔滨</option>
    </select>
    <br/>
    爱好:<input type="checkbox" name="hobby[]" value="唱歌">唱歌</input>
    <input type="checkbox" name="hobby[]" value="跳舞">跳舞</input>
    <input type="checkbox" name="hobby[]" value="LOL">LOL</input><br/>
    个人简介:<textarea rows="10" cols="10" name="introduce"></textarea><br>
    文件上传:<input type="file" name="files"></input><br/>
    <input type="submit" value="提交"/>
    </form>
    </body>
    </html>
    <html>
    <head>
    <meta http-equiv="content-type" content="text/html;charset=utf-8"/>
    </head>
    <body>
    <?php
    	echo "<pre>"; 
    	//如何接收checkbox的所有数据(注意中括号[]):<input type="checkbox" name="hobby[]" value="唱歌">唱歌</input>
    	echo print_r($_POST);
    	echo "</pre>";
    	
    	$hobbies=$_POST['hobby'];
    	foreach($hobbies as $key=>$val){
    		echo "<br/>".$key." ".$val;
    	}
    ?>
    </body>
    </html>

    $_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(因为将多个信息混合)。

    <html>
    <head>
    <meta http-equiv="content-type" content="text/html;charset=utf-8"/>
    </head>
    <body>
    <a href="1.php?name='tan'">超链接</a>
    <form action='1.php' method='POST'>
    用户名:<input type="text" name="username"/><br/>
    密码:<input type="password" name="password"/><br/>
    <input type="submit" value="提交"/>
    </form>
    </body>
    </html>
    <html>
    <head>
    <meta http-equiv="content-type" content="text/html;charset=utf-8"/>
    </head>
    <body>
    <?php
    	echo $_REQUEST['name'];
    	echo $_REQUEST['username'];
    ?>
    </body>
    </html>
    <html>
    <head>
    <meta http-equiv="content-type" content="text/html;charset=utf-8"/>
    </head>
    <body>
    <?php
    	if($_SERVER['REQUEST_METHOD']=="GET"){
    		echo $_REQUEST['name'];
    	}else if($_SERVER['REQUEST_METHOD']=="POST"){
    		echo $_REQUEST['username'];
    	}
    ?>
    </body>
    </html>

    $_SERVER

    $_SERVER是一个包含诸如头信息、路径和脚本位置的数组。数组的实体由web服务器创建,并不能保证所有的服务器都能产生所有的信息,服务器可能忽略了一些信息,或者产生了一些其他的新的信息。和其他的超全局数组一样,这是一个自动的全局变量,在所有的脚本中都有效,在函数或对象的方法中不需要使用global关键字访问它。

    $_ENV

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

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

    $GLOBALS

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

    <html>
    <head>
    <meta http-equiv="content-type" content="text/html;charset=utf-8"/>
    </head>
    <body>
    <?php
    	$a=100;
    	echo "<pre>";
    	print_r($GLOBALS);
    	echo "</pre>";
    ?>
    </body>
    </html>

    在这里插入图片描述

    $_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核实处理。

    前端(VUE)零基础到就业课程:点击学习

    清晰的学习路线+老师随时辅导答疑

    自己动手写 PHP MVC 框架:点击学习

    快速了解MVC架构、了解框架底层运行原理

    专题推荐:php数组 php
    上一篇:php怎么从数组中间移除一个元素 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • ❤️‍🔥共22门课程,总价3725元,会员免费学• ❤️‍🔥接口自动化测试不想写代码?• 创建php数组的方法有哪几种• php数组怎么去掉null值• php数组长度用什么函数取得• php数组怎么去掉最大和最小元素• php数组怎么计算乘积和求和• php数组里面可放数组吗
    1/1

    PHP中文网