PHP 变量的四大作用域

PHP 变量作用域

● local

● global

● static

● parameter

局部作用域、全局作用域

  1. <?php
  2. $x = 50; // 全局变量
  3. function myTest()
  4. {
  5. $y = 100; // 局部变量
  6. }

PHP global 关键字

global 关键字用于函数内访问全局变量。

在函数内调用函数外定义的全局变量,可以在函数中的变量前加上 global 关键字。

  1. <?php
  2. $x = 50;
  3. $y = 100;
  4. function myTest()
  5. {
  6. global $x, $y;
  7. $y = $x + $y;
  8. }
  9. myTest();
  10. echo $y; // 输出 150

PHP 将所有全局变量存储在一个名为 $GLOBALS 的数组中。

所以上述代码可以换一种写法:

  1. <?php
  2. $x = 50;
  3. $y = 100;
  4. function myTest()
  5. {
  6. $GLOBALS['y'] = $GLOBALS['x'] + $GLOBALS['y'];
  7. }
  8. myTest();
  9. echo $y;

PHP Static 作用域

PHP 当一个函数完成时,它的所有变量通常都会被删除,为了有些局部变量不被删除,可以在第一次声明变量的时候使用 static 关键字。

  1. <?php
  2. function myTest()
  3. {
  4. static $x = 0;
  5. echo $x;
  6. $x++;
  7. echo PHP_EOL;
  8. }
  9. myTest();
  10. myTest();
  11. myTest();

参数作用域 (形参)

参数声明作为函数声明的一部分。

  1. <?php
  2. function myTest($x)
  3. {
  4. echo $x;
  5. }
  6. myTest('Galois');
  7. myTest(8888);

小补充:

打印数组方式:

  1. echo '<pre>';
  2. print_r($arr);