PHP

PHP $GLOBALS 与 global

2020-04-24  本文已影响0人  887d1fc86fe6
<!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>

<!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>
上一篇 下一篇

猜你喜欢

热点阅读