php局部变量和全局变量的区别,php基础(六)全局变量,局部变量

这篇博客探讨了PHP中的变量作用域,包括局部变量和全局变量。通过示例代码展示了如何在函数内部和外部使用变量,强调了全局变量在函数内部需要使用`global`关键字来引用。还讲解了静态变量的概念,它在函数调用中保持其值,不会在每次调用后重置。最后提到了参数传递的方式,包括传值和传址,并解释了它们对变量的影响。
摘要由CSDN通过智能技术生成

全局变量,局部变量等

定义函数写函数帮助文档时:

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");//判断函数是否存在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值