background image

$a

 = 1; 

/* global scope */

 

function

 Test() 

echo

 

$a

/* reference to local scope variable */

 


Test(); 
?> 
 
这个脚本不会有任何输出,因为

 

echo

 语句引用了一个局部版本的变量 

$a

,而且在这个范

围内,它并没有被赋值。你可能注意到

 PHP 的全局变量和 C 语言有一点点不同,在 C 语言

中,全局变量在函数中自动生效,除非被局部变量覆盖。这可能引起一些问题,有些人可能
漫不经心的改变一个全局变量。

PHP 中全局变量在函数中使用时必须申明为全局。 

代码如下

:

 
<?php 

$a

 = 1; 

$b

 = 2; 

function

 Sum() 

global

 

$a

$b

$b

 = 

$a

 + 

$b


Sum(); 

echo

 

$b

?> 
 
以上脚本的输出将是

“3”。在函数中申明了全局变量 

$a

 和 

$b

,任何变量的所有引用变量都

会指向到全局变量。对于一个函数能够申明的全局变量的最大个数,

PHP 没有限制。