-
$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>
网友评论