第四章:第36节 PHP预定义变量$_POST

更新于:2017-03-28 19:39:39

从这节开始讲解5个预定义变量(超全局变量),前面楠神讲过一个预定义变量$GLOBALS,用的不多,接下来讲解的预定义变量太实用了,没有这几个预定义变量PHP基本上就是废柴一个。


不知大家对第一章学过的表单还印象深刻否?就是用户在浏览器HTML页面输入各种信息,可以提交到服务器,实现客户端与服务器端信息交互。客户端表单页面我们知道怎么写了,就是HTML标记那些东西。PHP怎么去接受浏览器表单提交的数据?


看下面的示例:


course.png

以POST提交为例

1.png

点提交,结果:

1.png

1.php获取到表单提交过来的数据了,这些数据是存在数组里,我们来看下1.php用多少代码获取的这些数据。


1.png

其实就简简单单地在第5行用了一个预定义变量$_POST就把表单提交过来的数据获取到了。


在浏览器只提交了一个数据过来时,预定义变量$_POST也是一个数组。所以程序员想精确获取哪个数据,直接用表单标记(input、select、textarea)中的“name”属性值做$_POST下标,就可以获得值了。


前面讲解HTML表单时,楠神做过提示,像多选框的“name”属性值后面要加上[],如果不加就会是这样的:


1.png

等于是同时提交过来两个name='hobby'的数据,$_POST['hobby']从表单获取的不是数组了,它只能获取后面的值——“上网”。


也可以这样,不是多选框“name”属性值后面也可以加上[],并且[]可以写字符或数字进去:

1.png

PHP可以获取到一个关联数组。

1.png

[]中的字符不需要加引号。


$_POST不仅可以获取到表单提交的数据,在程序中可以修改它的数据。


1.png

结果:

1.png

$_POST数组中的数据可以被修改被删除,不过建议大家在写程序时不要这样写,尽量不去修改$_POST的数据(包括其他几个预定义变量)。


总结:预定义变量$_POST其实很简单,但它在PHP中的地位超级重要,没有$_POST可以说什么功能都做不了。通常网页中的form表单,都用post方式提交,没有$_POST网站连最普通的用户登录功能都实现不了。


记住几点:$_POST是个数组,可获取浏览器post提交的数据,作用域没有限制,可被修改不建议修改。


本节学习代码》》》