php变量作业,PHP变量作用域

PHP变量作用域

PHPPHP 的全局变量和 C 语言有一点点不同,在 C 语言中,全局变量在函数中自动生效,除非被局部变量覆盖。

全局变量

在函数范围之外所声明的变量就是全局变量。由于函数可以视为单独的程序片段,所以局部变量会覆盖全局变量的能见度,因此在函数中并无法直接调用使用全局变量。

局部变量

在函数之中声明的变量就是局部变量,并且该变量只有在函数范围之中才能加以使用。如果其它程序局部需要调用使用该变量值时,必须透过return指令,来将其传回至主程序区块以作后续处理。

函数内使用全局变量

1、通过传参方式将变量传入函数内部使用函数内部不能改变全局变量的值

可以在传参数时形参使用&符号与外部全局变量建立引用关系,这样可以更改全局变量的值。

$a=10;

functioncanshu($x){

echo $x;

}

canshu($a);//输出10

2、通过global关键字声明一个与全局变量同名的局部变量需先声明后使用(实质上是建立了引用关系)此时在函数里面可以修改全局变量的值;unset后引用关系没有了,但外部全局变量依旧存在。

$a=10;

functionquanju(){

global$a;

echo $a;

unset($a);//unset后引用关系没有了,但外部全局变量依旧存在

var_dump($a);//null

}

quanju();//输出10

echo'
out:';

echo $a;//输出10

3、使用超全局数组GLOBALS

此时在函数里面可以修改全局变量的值;

unset后外部全局变量也不存在了。

$name='Bob';//全局变量$name也属于超全局数组GLOBALS的成员之一

echo'

';

// print_r($GLOBALS);

echo'

';

echo $GLOBALS['name'];

functionchao(){

echo $GLOBALS['name'];

$GLOBALS['name']='Allen';//将改变外部全局变量$name的值

unset($GLOBALS['name']);//将unset外部全局变量$name的值

}

echo'
in:';

chao();//Bob

echo'
out:';

var_dump($name);//null

静态变量(static)

PHP支持声明函数变量为静态的(static)。

一个静态变量在所有对该函数的调用之间共享,并且仅在脚本的执行期间函数第一次被调用时被初始化。

要声明函数变量为静态的用关键字static。通常,静态变量的第一次使用时赋予一个初始值。

函数内使用静态变量关键字static声明的变量在执行完函数后不会被释放,下一次函数调用仍然生效。

functionadd(){

static$a=0;

echo $a;

$a++;

}

add();//0

echo"


";

add();//1

echo"


";

add();//2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值