美文网首页PHP
PHP $GLOBALS 与 global

PHP $GLOBALS 与 global

作者: 887d1fc86fe6 | 来源:发表于2020-04-24 18:30 被阅读0次
  • $GLOBALS

    • 它也是一个数组,其中存储了我们自己定义的所有全局变量。
    • 每个全局变量的变量名,就是$GLOBALS数组的一个单元。
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <?php
  $v1 = 1;
  $v2 = 'abc';
  echo $GLOBALS['v1']; // 1
  echo $GLOBALS['v2']; // abc
  function f1 () {
    $v3 = 'dzm';
    echo $GLOBALS['v1']; // 1
    echo $GLOBALS['v3']; // 空的,因为是局部变量
    $GLOBALS['v1']++;
    echo $GLOBALS['v1']; // 2, 也可以修改全局变量
  }
  f1();
  echo $GLOBALS['v1']; // 2, 因为在函数里面修改了
  ?>
</body>
</html>

  • global
    用于在局部作用域中,修饰一个跟全局变量同名的局部变量。
    此时该局部变量也可以使用全局变量的值了,实际上他们其实是类似变量引用关系。
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <?php
  $v1 = 1;
  $v2 = 2;
  function f1() {
    // 其含义是:定义一个局部变量 $v1
    // 并且该变量跟全局变量 $v1 同名,并处于"引用关系"
    // 局部变量通过 global 修饰之后也会跟全局同名变量指向同一份数据
    global $v1;
    $v2 = 0;
    echo '在函数中:v1 = ' . $v1; // 1
    echo '在函数中:v2 = ' . $v2; // 0
    $v1++;
  }
  f1();
  echo '在函数外:v1 = ' . $v1; // 2
  echo '在函数外:v2 = ' . $v2; // 2
  ?>
</body>
</html>

相关文章

  • PHP $GLOBALS 与 global

    $GLOBALS它也是一个数组,其中存储了我们自己定义的所有全局变量。每个全局变量的变量名,就是$GLOBALS数...

  • global 和 $GLOBALS 的区别

    global 和 $GLOBALS 的区别: global GLOBALS['a'] global 操作的只是全...

  • global与$GLOBALS区别

    有些场合需要全局变量的出现,如下例子: 上面的代码的结果为:"myname is" 。而不是期望中的:"mynam...

  • php函数

    局部变量---动态变量 局部变量---静态变量 全局变量---global 全局变量---GLOBALS PHP传...

  • 浅析global与$GLOBALS的区别

    前两天看到一道关于global与$GLOBALS的面试题,觉得挺有趣,废话不多说,直接上代码(在简书编辑器上手打代...

  • 九月八号

    详解global和$GLOBALS[]的区别: 1.$GLOBALS[‘var’]是外部的全局变量本身 2.glo...

  • php $GLOBALS

    1.globalGlobal的作用是定义全局变量,但是这个全局变量不是应用于整个网站,而是应用于当前页面,包括in...

  • global和$GLOBALS[]的用法、解释、区别

    $GLOBALS[‘var’] 是外部的全局变量本身 global var的同名引用或者指针。 global va...

  • 变量覆盖问题 by L0st

    变量覆盖 0x01 register_globals register_globals是php.ini里的一个配置...

  • 为什么JNIEnv不能跨线程传递,但是global refere

    Global reference的定义globals_,是JavaVMExt的成员变量,定义早java_vm_ex...

网友评论

    本文标题:PHP $GLOBALS 与 global

    本文链接:https://www.haomeiwen.com/subject/yicqwhtx.html