- $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>