加入收藏 | 设为首页 | 会员中心 | 我要投稿 我爱制作网_潮州站长网 (http://www.0768zz.com/)- 物联安全、建站、操作系统、云计算、数据迁移!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

如何解决PHP超级全局变量

发布时间:2022-08-02 16:14:27 所属栏目:PHP教程 来源:互联网
导读:PHP超级全局变量 在函数外部定义的全局变量是不能在函数内部引用的,但是有些时候却需要在函数内使用这些全局变量,这时候就要用到超级全局变量,超级全局变量是可以再函数内部引用的。 PHP中预定义了几个超级全局变量 ,这也就是说它们在一个脚本的全部的作
  PHP超级全局变量
  在函数外部定义的全局变量是不能在函数内部引用的,但是有些时候却需要在函数内使用这些全局变量,这时候就要用到超级全局变量,超级全局变量是可以再函数内部引用的。
 
  PHP中预定义了几个超级全局变量 ,这也就是说它们在一个脚本的全部的作用域中都可以被引用。 不需要特别说明,超级全局变量就可以在函数及类中使用。
 
  PHP超级全局变量:
 
  $GLOBALS
 
  $_SERVER
 
  $_REQUEST
 
  $_POST
 
  $_GET
 
  $_FILES
 
  $_ENV
 
  $_COOKIE
 
  $_SESSION
 
  今天我们先来看一下几个在日常使用中常用到的超级全局变量,接下来我们通过一些实例来看一下,这些超级全局变量的一些用法和特点。
 
  首先,我们先来看:
 
  PHP $GLOBALS
 
  $GLOBALS 是一个预定义的超全局数组,其中包含了全局作用域中的所有可用变量,变量的名字就是数组的键。$GLOBALS在一个PHP脚本的全部作用域中都可以访问。
 
  示例如下:
 
 
 
 
  <?php
 
  //定义两个全局变量,函数内部不可以访问
 
  $a = 75;
 
  $b = 25;
 
  //定义函数
 
  function addition()
 
  {
 
  //将全局变量变为超级全局变量,这样在函数内部就可以正常访问了
 
  $GLOBALS['c'] = $GLOBALS['a'] + $GLOBALS['b'];
 
  }
 
  //调用函数
 
  addition();
 
  //输出函数内部定义的全局变量
 
  echo $c;
 
  ?>
 
  输出结果:
 
  1015.18.png
 
  $GLOBALS 不限定必须在函数内部使用,在程序的任意位置都能使用。由上述示例看得出,全局变量变为超级全局变量,这样在函数内部就可以正常访问了。
 
  global
 
  还有一个与$GLOBALS 很类似的叫 global 关键字,它也可以让我们在函数内部使用在函数外部定义的全局变量。
 
  语法格式如下:
 
 
  global 变量1, 变量2, ...
 
  global 关键字后面可以和多个变量作为参数,多个变量之间以“,”(逗号)分隔。同时,使用global要注意一些关键点:
 
  global 关键字,不能在函数外部使用,只能在函数内部使用;
 
  global 关键字只能用来引用函数外部的全局变量,在引用时不能直接赋值,赋值和声明语句需要分开写;
 
  在函数内部销毁一个使用 global 关键字修饰的变量时,函数外部的变量不受影响。
 
  示例如下:
 
 
 
 
  <?php
 
      $a = 1;
 
      $b = 2;
 
      $c = 3;
 
      function demo(){
 
          global $a, $b;
 
          echo "变量 a:".$a;
 
          echo "<br>变量 b:".$b;
 
          echo "<br>变量 c:".$c;
 
      }
 
      demo();
 
  ?>
 
  在上述例子中,定义了三个变量,但是在函数内global关键字只修饰了两个变量,那输出结果会有什么影响呢?
 
  输出结果:
 
  1015.19.png
 
  可以看出,结果只输出了变量a和b的,因为global关键字只在函数内修饰了两个,所以变量c没有使用成功。
 
  通过两个例子我们能够看出与 global 相比,$GLOBALS 有一下几点不同:
 
  global $ 指的是对函数外部同名变量的引用,是两个互不影响的变量,而 $GLOBALS[] 指的是函数外部变量本身,是一个变量。
 
  $GLOBALS 不限定必须在函数内部使用,在程序的任意位置都能使用。
 
  PHP $_SERVER
 
  PHP $_SERVER准确来说是一个数组,$_SERVER 包含了头信息、路径、以及脚本位置等等信息。这个数组中的项目由 Web 服务器创建。服务器可能会忽略一些,不一定每个服务器都提供全部项目。
 
  接下来给大家举个例子如何使用PHP $_SERVER:
 
  <?php
 
  //输出当前脚步的文件名
 
  echo "<h3>输出当前脚步的文件名</h3>";
 
  echo $_SERVER['PHP_SELF'];
 
  echo "<hr/>";
 
  //当前脚步所在服务器的主机名
 
  echo "<h3>当前脚步所在服务器的主机名</h3>";
 
  echo $_SERVER['SERVER_NAME'];
 
  echo "<hr/>";
 
  //当前请求头中 Host
 
  echo "<h3>当前请求头中 Host</h3>";
 
  echo $_SERVER['HTTP_HOST'];
 
  echo "<hr/>";
 
  //引导用户代理到当前页的前一页的地址(如果存在)
 
  echo "<h3>引导用户代理到当前页的前一页的地址(如果存在)</h3>";
 
  echo $_SERVER['HTTP_REFERER'];
 
  echo "<hr/>";
 
  //用来检查浏览页面的访问者在用什么操作系统
 
  echo "<h3>用来检查浏览页面的访问者在用什么操作系统</h3>";
 
  echo $_SERVER['HTTP_USER_AGENT'];
 
  echo "<hr/>";
 
  //包含当前脚本的路径
 
  echo "<h3>包含当前脚本的路径</h3>";
 
  echo $_SERVER['SCRIPT_NAME'];
 
  ?>

(编辑:我爱制作网_潮州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读