php中变量的作用域有3个范围
- 局部变量,函数内部的变量
- 全局变量,函数外部的变量
- 超全家变量,函数内部外部都可以使用,一般以$_开头的
局部变量(在函数内部定义的变量)
例如:其中的
n
u
m
就
是
局
部
变
量
,
不
能
在
函
数
外
部
使
用
,
只
能
在
函
数
内
部
调
用
,
以
下
在
函
数
外
部
调
用
num就是局部变量,不能在函数外部使用,只能在函数内部调用,以下在函数外部调用
num就是局部变量,不能在函数外部使用,只能在函数内部调用,以下在函数外部调用num,会报Notice: Undefined variable: num 错误
public function getVariate(){
$num = 10;
echo $num;
}
echo $num;
全局变量(函数外部定义的变量)
例如:$num在函数外部定义,成为全局变量,全局变量不能在函数内部使用。下面的代码会报Notice: Undefined variable: num,因为在函数外部定义的变量在函数内是不能使用的
$num = 10;
public function getVariate(){
echo $num;
}
getVariate();
超全局变量(函数内部和外部都能使用)
超全局变量包含以下几个
- $_POST
- $_GET
- $_REQUEST
- $_COOKIE
- $_SERVER
- $_SESSION
- $_FILES
- $_ENV
以一个为例
$_POST['num']= 10;
public function getVariate(){
echo $_POST['num'];
}
getVariate();
public function getVariate(){
$_POST['num'] = 10;
}
echo $_POST['num'];
如何在函数内使用函数外部定义的变量
在函数内部使用函数外部的变量,除了可以使用超全局变量之外,还可以使用
G
L
O
B
A
L
S
或
者
g
l
o
b
a
l
,
其
中
GLOBALS或者global,其中
GLOBALS或者global,其中GLOBALS 是获取所有的全局变量的值,而global 是引用全局变量的地址。
$num = 10;
$num2=20;
public function getVariate(){
var_dump($GLOBALS);
$GLOBALS['num'] = 100;
}
echo getVariate();
echo $num;
$num = 10;
$num2=20;
public function getVariate(){
global $num;
echo $num;
$num = 100;
}
echo getVariate();
echo $num;
|