1.局部变量:
在方法中的变量:
<?php
function abc(){
$test = 'hhhh';
}
echo $test;
在方法外打印$test,运行代码,无法显示。因此,方法中的局部变量作用域只在方法中。
2.全局变量:
在方法之外定义的变量叫全局变量,例如:
<?php
$test = 'hhhhhh'; //定义全局变量
function abc(){
echo $test; //无法获得$test的值
}
abc();
在方法外变量为全局变量,但是方法中不能直接访问,应该通过超全局变量来访问。
3.超全局变量:
定义的全局变量都会以该变量的名字存入超全局变量中:
<?php
$test = 'hhhh'; //定义全局变量
var_dump($GLOBALS);
function abc(){
}
打印出超全局变量$GLOBALS,查看里面的数值:
可以看到变量以变量test为名称来存入数值到超全局变量GLOBALS。可以在方法中打印该变量:
<?php
$test = 'hhhh'; //定义全局变量
function abc(){
echo $GLOBALS['test'],'我是abc方法';
}
abc();
运行代码,得到结果:
4.使用global关键字使方法内部访问到全局变量:
global是在函数内使用的关键字:
<?php
$test = 'hhhh'; //定义全局变量
function abc(){
global $test; //使用global关键字
echo $test;
}
abc();
这样即可将方法内的变量名和全局变量名一样的方法指向同一块内存空间,输出结果:
如果该变量名在方法外不存在,即可自动生成一个相同变量名的全局变量。