$_REQUEST数组,其实并不是一个独立的数据来源,而是$_POST数据和$_GET数据的“总和”
即$_REQUEST数组中包括了所有$_POST数据和$_GET数据——其实是由系统内部自动存储的。
看演示代码:
用post方式提交,“action”地址中又有get提交参数。
$_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”, 顺序反过来
说明下:学PHP编程语言,不仅要会写代码,还要扩充很多其他的知识,比如对搭建服务器环境做些研究。楠神不带大家学习一些配置文件怎么看,怎么用,怎么修改。这些东西没那么死,像PHP、Apache服务器、MySQL数据库都有配置文件的,这里面的学问也挺大的。如何修改配置参数,达到最优状态,需要朋友们自行网上搜索,一点一点了解学习。
post的“name”覆盖了get的“name”
$_GET, $_POST, $_REQUEST三种数据是相互独立的。
一点小细节:HTML表单只能提交字符串数据和文件数据,表单里输入“1”,PHP这三个预定义变量接收的是字符串“1”,而不是整数型“1”。
做个练习题:
用一个php文件(action留空就是提交给自己)来实现基本计算器功能,如下所示:
下拉列表中有如下符号: + - * / %