今天在修改网站的网银支付系统时,发现了这种方法。以前写程序时,在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等引用包含了公用函数的页面进行调用