第四章:第38节 PHP预定义变量$_REQUEST

更新于:2017-03-31 20:32:58

$_REQUEST数组,其实并不是一个独立的数据来源,而是$_POST数据和$_GET数据的“总和”

即$_REQUEST数组中包括了所有$_POST数据和$_GET数据——其实是由系统内部自动存储的。


看演示代码:


1.png

用post方式提交,“action”地址中又有get提交参数。


1.png


1.png

$_REQUEST可以同时获取本应$_POST和$_GET获取的数据。$_REQUEST楠神用的不多,因为有$_POST和$_GET就够用了,它主要用于无法确定客户端是用post还是用get提交,或者服务端不管什么方式提交的数据都可以接受。实际项目中,无法确定提交方式的情况少见,出于安全的考虑,对提交方式最好严格要求。


当get数据和post数据同时提交并其中有重名的时候,情况怎么样呢?

说明:

1,尽量避免重名;

2,如果重名了,此时$_REQUEST只会记录(存储)其中一个数据(要么post数据,要么get数据)

3,至于记录的是哪个,是有PHP配置文件php.ini中的一个设置项来决定:

3.1  request_order = “GP”;  //这是默认值,G代表GET,P代表POST

3.2  含义是:先存储GET数据,再存储POST

3.3  可见如果重名,此时POST就会覆盖GET数据

3.4  改为:request_order = “PG”, 顺序反过来


1.png


说明下:学PHP编程语言,不仅要会写代码,还要扩充很多其他的知识,比如对搭建服务器环境做些研究。楠神不带大家学习一些配置文件怎么看,怎么用,怎么修改。这些东西没那么死,像PHP、Apache服务器、MySQL数据库都有配置文件的,这里面的学问也挺大的。如何修改配置参数,达到最优状态,需要朋友们自行网上搜索,一点一点了解学习。


1.png

post的“name”覆盖了get的“name”


$_GET, $_POST, $_REQUEST三种数据是相互独立的。


一点小细节:HTML表单只能提交字符串数据和文件数据,表单里输入“1”,PHP这三个预定义变量接收的是字符串“1”,而不是整数型“1”。


做个练习题:

 

用一个php文件(action留空就是提交给自己)来实现基本计算器功能,如下所示:

1.png

下拉列表中有如下符号: +   -   *   /   %


本节学习代码》》》