全局变量,局部变量等
定义函数写函数帮助文档时:
1、写出函数的作用,
2、函数有几个参数,每个参数是什么类型的,
3、函数执行后返回什么样的结果,
变量的能见度:变量在程序中的可作用范围。变量可以分为局部变量和全局变量。
—————————————————————————————————————————————————
例一:
function fun1()
{
$a=100;
echo $a;
}
function fun2()
{
$b=200;
echo $b;
}
fun1();//输出的结果为100
fun2(); //输出的结果为200
例二:
function fun1()
{
$a=100;
}
function fun2()
{
$b=200;
}
fun1();
fun2();
echo $a;
echo $b;//输出的结果是得不到任何的值
对例一和例二进行比较可知:
调用函数的时候将变量$a$b的值存入到内存中,调用结束后将变量$a$b的值从内存中释放掉。
在函数内声明的变量只能在函数中使用。//局部变量
——————————————————————————————————————————————
$a=100;
function fun1()
{
echo $a;
}
function fun2()
{
echo $a;
}
fun1();
fun2();//得不到任何的值。系统不能区分开$a有什么不同。函数外部声明了$a,在函数内部的$a看做是新声明的变量,所以无法输出。要区分开的话需要加一个关键字global。
$a=100;
function fun1()
{
global $a;
echo $a;
}
function fun2()
{
global $a;
echo $a;
}
fun1();//得到的值为100
fun2();//得到的值为100。全局变量
$a=100;
$b=300;
function fun1()
{
echo $GLOBALS["a"];//得到的结果为100
echo $GLOBALS["b"];//得到的值为300
}
function fun2()
{
global $a;
global $b;
echo $a;
}
fun1();
fun2();
$a=100;
$b=300;
function fun1()
{
global $a;
$a=999;
}
function fun2()
{
global $b;
$b=111;
}
fun1();
fun2();
echo $a."
";//得到999
echo $b."
";//得到111
$a=100;
$b=300;
function fun1($a)
{
global $a;
$a=999;
}
function fun2($b)
{
global $b;
$b=111;
}
fun1($a);//得不到任何值
fun2($b);//得不到任何值
echo $a."
";//得到999
echo $b."
";//得到111
______________________________________________________________________________________________
$a=100;
function fun1($a)//传值:将全局变量值$a=100传递给函数fun1
{
$a=999; //$a的值变为999
}
fun1($a);//编译函数并释放掉内存中的$a=999
echo $a."
";//得到全局变量的值100.
$a=100;
function fun1(&$a)//&代表传地址
{
$a=999;
}
fun1($a);
echo$a."
";//得到结果为999
______________________________________________________________________________________________
function test()
{
$a=0;
echo $a."
";
$a++;
}
test();//得到值为0
test();//得到值为0
test();//0
原因:在调用后内存被释放。声明输出释放三步。
function test()
{
static
$a=0;//静态变量。在所有调用该函数内共享,紧在第一次调用的时候被初始化,后边调用不在执行初始化这一步。
echo $a."
";
$a++;
}
test();//可以任意的改变大小写,在php里函数是不区分大小写的,变量区分
function_exists("test");//判断函数是否存在