php自定义函数调用全局变量的另类方法
今天在修改网站的网银支付系统时,发现了这种方法。以前写程序时,在php自定义函数里调用全局变量一般都是在函数开头加上global声明一下全
局变量,然后才在函数里使用,但这里提到的这种方法,却不用那么麻烦,只需要在一个公用函数里声明一下变量,那么就可以在任何地方调用这个变量的值。
掌握这种方法很简单,只需要巧用”&”符号。
这里用一个简单的例子说明下”&”的妙用
01 |
<?php |
02 |
$a = 'c' ; |
03 |
$b = & $a ; //表示$b 和 $a 引用了同一个变量 |
04 |
$a = 'abc' ; //这里重置了$a |
05 |
echo $b ; //将输出abc |
06 |
unset( $a ); //取消引用 |
07 |
echo $b ; //这里仍输出 abc |
08 |
$a = 'abcd' ; |
09 |
echo $b ; //因为已经取消引用 这里仍输出abc |
10 |
?> |
同样的原理,我们可以用在php自定义函数里调用全局变量的时候,例如:
01 |
<?php |
02 |
//先定义一个公用函数 |
03 |
function setValue(& $a ) |
04 |
{ |
05 |
$a = '123456' ; |
06 |
} |
07 |
//执行公用函数,使函数里的变量得到赋值 |
08 |
setValue( $a1 ); |
09 |
10 |
//自定义函数,注意:这里没用global声明 |
11 |
function getValue( $a ) |
12 |
{ |
13 |
echo $a ; |
14 |
} |
15 |
//执行自定义函数,将输出123456 |
16 |
getValue( $a1 ); |
17 |
?> |
在调用多个变量时,只需要在前面的公用函数里预先声明并赋值,都可以在后面进行调用;如果两个函数不在一个页面里,同样可以采用include_once等引用包含了公用函数的页面进行调用