php学习笔记 [预定义数组(超全局数组)]

  

复制代码 代码如下:

  <?php

  /* 预定义数组:

  * 自动全局变量---超全局数组

  *

  * 1.包含了来自WEB服务器,客户端,运行环境和用户输入的数据

  * 2.这些数组比较特别

  * 3.全局范围内自动生效,都可以直接使用这些数组

  * 4.用户不能自定义这些数组,但这些数组的操作方式和自己定义的数组操作的方式一样

  * 5.在函数中直接可以使用这些数组

  *

  * $_GET //经由URL请求提交至脚本的变量

  * $_POST //经由HTTP POST 方法提交到脚本的变量

  * $_REQUEST //经由GET , POST和COOKIE机制提交 到脚本的变量

  * $_FILES //经由http post方法文件上传而提交至脚本的变量

  * $_COOKIE

  * $_SESSION

  * $_ENV //执行环境提交至脚本的变量

  * $_SERVER //变量由WEB服务器设定的,或直接和当前脚本的执行环境相关联

  * $GLOBALS //只要是当前脚本有效的变量都在这里,数组的键名为全局脚本的名称

  *

  *

  */

  //超全局数组在函数内部可以直接调用

  $arr=array(10,20);//一般数组

  $_GET=array(50,90);//超全局数组

  function demo(){

  global $arr;//调用全局变量要先包含

  print_r($arr);

  print_r($_GET);//直接调用超全局数组不用包含

  }

  ?>

  <!-- **********页面传值get请求*************** -->

  <?php

  //直接把传的值当变量用,当php.ini配置文件中register_global=on时有用。

  echo $username."<br>";

  echo $email."<br>";

  echo $page."<br>";

  //最稳定的取值方法

  echo $_GET["username"]."<br>";

  echo $_GET["email"]."<br>";

  echo $_GET["page"]."<br>";

  ?>

  <a href="demo.php?username=zhangsan&[email protected]&page=45">this is a $_GET test</a>

  <!-- ***********页面传值post请求**************** -->

  <form action="demo.php" method="post">

  username:<input type="text" name="uname" /> <br/>

  password:<input type="password" name="pass" /> <br/>

  <input type="submit" value="login" /> <br />

  </form>

  <?php

  print_r($_GET);//不能接收到

  print_r($_POST);//这样才能接收到

  ?>

  <?php

  //$_ENV的使用

  echo'<pre>';

  print_r($_ENV);

  echo'</pre>';

  //显示当前环境

  // 也可以单个遍历

  ?>

  <?php

  //利用$GLOBALS超全局数组在函数内部调用全局变量

  $a=100;

  $b=200;

  $c=300;

  function demo()

  {

  //直接调用全局变量

  echo $GLOBALS["a"]."<br>";

  echo $GLOABLS["b"]."<br>";

  echo $GLOABLS["c"]."<br>";

  }

  ?>