说明:在php中变量分为三种访问方式(范围):局部变量,全局变量,静态变量
1. 全局变量
说明:在函数外定义的变量是全局变量。正常情况只能在函数外使用。作用域在函数外。
示例代码://全局变量的作用域
$name = 'admin'; //全局变量,不能在函数内部使用,原因是存储的位置不一样
function user(){
echo $name;
}
user(); //报错无法使用$name
2. 局部变量
说明:在函数内定义的变量是局部变量。正常情况下只能在函数内部使用。
示例代码://局部变量作用域
$name = 'admin';
echo $name;// admin
function user2()
{
$name2 = 'qingyu'; //局部变量
echo $name2; //qingyu
}
user();
echo $name2; //报错外部无法使用局部变量
3. 静态变量
说明:正常情况下变量是在运行完当前页面后进行销毁的(php自己的机制)。如果不想销毁可以使用静态变量
静态变量的申明方式:static 变量名;
示例代码://静态变量作用域
$age = 18;
$age++;
echo $age; //19
function age1(){
$age = 18;
echo $age;
}
age1();//18
function age2(){
$age = 18;
echo $age;
$age++;
}
age2();
age2();
age2();
age2();
age2(); //18 18 18 18 18
function age3()
{
//静态变量的声明,静态变量声明后进行完当前页面不在销毁这个变量,而是保留
static $age = 18;
echo $age;
$age++;
}
age3(); //18
age3(); //19
age3(); //20
age3(); //21
age3(); //22
4. 全局和局部转换
说明:局部变量可以在函数内声明为全局变量,这个时候局部就可以在函数外使用。
声明的方式:
$GLOBALS 变量名;
Global 变量名;globas $sex = '男'; //报错 这种方式不行
$sex = '男';
function user()
{
globas $name,$sex; //局部转全局,全局转局部
$name = 'admin';
echo $sex;
}
user();
echo $name;