php static 和 global,PHP比较static global与GLOBALS用法

例子,PHP中static global与GLOBALS用法。

复制代码 代码示例:

// 比较global、GLOBALS、static

$k = 0;

function test1() {

global $k;

static $i = 0;

echo 'i:', ++$i, '
';

echo 'k:', ++$k, '
';

}

test1();

test1();

echo 'i:', $i, '
';

echo 'k:', $k, '
';

echo '------------------
';

function test2() {

global $k;

static $i = 0;

echo 'i:', ++$i, '
';

echo 'k:', ++$k, '
';

}

test2();

test2();

echo 'i:', $i, '
';

echo 'k:', $k, '
';

$m = 0;

$n = 0;

function test3() {

global $m;

echo 'm:', $m++ , '
';

echo 'n:', $GLOBALS['n']++ , '
';

unset($m, $GLOBALS['n']);

}

echo '------------------
';

test3();

echo 'm:', $m, '
';

echo 'n:', $n, '
';

echo '------------------
';

static $x = 0;

function test4() {

echo 'x:', $x++ , '
';

}

test4();

结果:

i:1

k:1

i:2

k:2

i:

k:2

------------------

i:1

k:3

i:2

k:4

i:

k:4

------------------

m:0

n:0

m:1

n:

------------------

x:

static 作用域 function class中,相同的function class共用相同的变量

global、GLOBALS 全局作用域

global 会产生一个引用到变量

GLOBALS 直接操作变量

所以unset global变量的时候,全局变量不改变,而GLOBALS直接删除了变量

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值