全局变量

全局变量就是在函数外面定义的变量。不能在函数中直接使用。因为它的作用域不 会到函数内部。所以在函数内部使用的时候常常看到类似global $a;

超全局变量

超全局变量作用域在所有脚本都有效。所以,在函数可直接使用。比如 $_GET$_SERVER都是超全局变量。除$_GET$_POST$_SERVER$_COOKIE等之外的超全局 变量保存在$GLOBALS数组中

$GLOBALS

global
Global的作用是定义全局变量,只应用于当前网页(包括include 和require的所有文件)而不是整个网站
$GLOBALS
$GLOBALS用于在PHP脚本中的任意位置访问全局变量(从函 数或方法中均可)
image.png

  1. <?php
  2. $name = 123;
  3. function test(){
  4. global $name;//参数传递
  5. $name = 456;
  6. }
  7. test();
  8. echo $name;

image.png

  1. <?php
  2. $name = 123;
  3. function test2(){
  4. $GLOBALS['name'] = 4567;//变量的作用域设置的全局
  5. }
  6. test2();
  7. echo $name;

image.png

  1. <?php
  2. $var1 = 1;
  3. $var2 = 2;
  4. function test3(){
  5. $GLOBALS['var1'] = $GLOBALS['var2'];
  6. }
  7. test3();
  8. echo $var1;

image.png

  1. <?php
  2. $var1 = 3;
  3. $var2 = 4;
  4. function test4()
  5. {
  6. global $var1,$var2;
  7. $var1 = $var2;
  8. }
  9. test4();
  10. echo $var1;

image.png

$_POST/$_GET

• POST(隐藏传参) $_POST向服务器传送数据。将表单内各个字段与其内容放置在 HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看 不到这个过程 • GET (URL传参) $_GET从服务器上获取数据,把参数数据队列加到提交表单的 ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL 中可以看到

image.png
image.png

$_REQUEST

• php中$_REQUEST可以获取以POST方法和GET方法提交的数据 • 比较慢

尽量不要使用$_REQUEST,应该从$_GET$_POST$COOKIE$_ENV$_SERVER等变量中取出需要的值
image.png
image.png

$_SERVER

这种超全局变量保存关 于报头、路径和脚本位置的信息 等。
image.png
查看本机IP
image.png
修改IP
image.png
打印所有的全局变量
image.png

$_FILES

• $_FILES[‘file’][‘name’] 显示客户端文件的原名称。 • $_FILES[‘file’][‘type’] 文件的 MIME 类型,例如”image/gif“ • $_FILES[‘file’][‘size’] 已上传文件的大小,单位为字节。 • $_FILES[‘file’][‘tmp_name’] 储存的临时文件名,一般是系统默认。 • $_FILES[‘file’][‘error’] 该文件上传相关的错误代码。

$_SESSION

• 当前脚本可用 SESSION 变量的数组。

• $HTTP_SESSION_VARS 包含相同的信息(4.1.0已废弃),但它不是一个超全局变量。

注意:$HTTP_SESSION_VARS 和 $_SESSION 是不同的变量,PHP 处理它们的方式不同

  1. <?php
  2. session_start();
  3. $test = 123;
  4. $_SESSION['value'] = $test;
  5. echo $_SESSION['value'];
  6. session_destroy();

image.png

$_COOKIE

• 通过 HTTP Cookies 方式传递给当前脚本的变量的数组

• $HTTP_COOKIE_VARS 包含相同的信息,但它不是一个超全局变量

注意: $HTTP_COOKIE_VARS 和 $_COOKIE 是不同的变量,PHP 处理它们的方式不同

  1. <?php
  2. $_COOKIE = $_COOKIE[0]['username'] = "name";
  3. var_dump($_COOKIE);

image.png

$_ENV

$_ENV包含服务器端环境变量的数组,可在PHP程序的任何地方直接访问
$_ENV只是被动的接受服务器端的环境变量转换为数组元素