2018/03/15 常用的超全局变量

说是常用的,可是在实际工程中有几个会常用呢?

你难道会在生产环境下使用$_GET|$_POST去直接获取变量么?肯定不会的。

到时对于面试的话,还是可以一部分的考察你的基础知识的掌握,不过我感觉题目含金量并不大

不说废话了,先看一下答案

--

  • $_GET ----->get传送方式

  • $_POST ----->post传送方式

  • $_REQUEST ----->可以接收到get和post两种方式的值


  • $GLOBALS ----->所有的变量都放在里面

  • $_FILES ----->上传文件使用

  • $_SERVER ----->系统环境变量


  • $_SESSION ----->会话控制的时候会用到

  • $_COOKIE ----->会话控制的时候会用到

--

明天开一个题目,叫做GET和POST的区别。

关于COOKIE和SISSION的控制也会在之后的题目中涉及到。

关于FILES文件的也会有特别的章节去梳理。

那么想在就谈谈_REQUEST 和 GLOBALS 和_SERVER他们的使用

--

预定义的 $_REQUEST 变量包含了 $_GET、$_POST 和 $_COOKIE 的内容。

平常在使用中,如果你有非常确切的目标,建议使用GET\POST。

 

有人会问了,这么方便的东西,我为什么不用呢?

  因为越是容易的东西越可能出现一些问题,比较隐晦。

  一个是字段定义模糊,你都不知道是怎么来的数据,一个是字段重名了,GET和POST都有,它会用哪个?

  很多人在使用$_REQUEST的时候,都把$_COOKIE给忘掉了,认为$_REQUEST是将$_GET和$_POST结合的数组。$_REQUEST是什么,哪个优先,其实是根据php.ini的variables_order参数确定的,默认情况下是"EGPCS"。

    看一下PHP.INI

  

  其中几个字母(EGPCS)对应如下: Environment, Get, Post, Cookie, Server。这些字母的出现顺序,表明了数据的加载顺序。从三种默认配置来看,相对顺序均是GP,也就是说只要有POST参数进来,那么它就会覆盖同名的GET参数。

  不但需要配置正确,也需要正确使用,可能在其他方面有一些小作用,比如防注入,但是平常更应该注意,使用具有语义化的标签和提取数据

      写代码的时候,不要求方便,严格要求自己,才能写出更健壮的程序。

--

GLOBALS

  global 关键字 使用全局变量

  先说结论:在面向对象中,很少使用了已经,缺点也很明显,定义过多全局变量,难以维护,管理,等等。

 

  $GLOBALS 获取所有的全局变量

--  

$_SERVER

获取当前的服务信息,很多东西,具体参数可以去百度。

很强大!但是越强大的函数就越应该谨慎使用。

能力越大,责任越大,就是这个意思。

 

posted @ 2018-03-15 22:17  Zzz哈  Views(297)  Comments(0Edit  收藏  举报