background image

  $a = 1;
  include "b.inc";
?>
这里变量

 $a 

 

将会在包含文件

b.inc 中生效。但是,在用户自定义函数中,一个局部函数范围

将被引入。任何用于函数内部的变量按缺省情况将被限制在局部函数范围内。范例:
代码示例

:

<?php
$a = 1; /* global scope */
function Test()
{
   echo $a; /* reference to local scope variable */
}
Test();
?>

这个脚本不会有任何输出,因为

 echo 

 

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

$a,而且在这个范

 

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

PHP 

 

的全局变量和

 

语言有一点点不同,在

C 语言

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

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

The global keyword
首先,一个使用

 global 的例子:

例子

 12-1. 

 

使用

global

代码示例

:

<?php
$a = 1;
$b = 2;
function Sum()
{
   global $a, $b;
   $b = $a + $b;
}
Sum();
echo $b;
?>
 
以上脚本的输出将是

 "3"

 

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

$a 

 

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

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

PHP 没有限制。

在全局范围内访问变量的第二个办法,是用特殊的

 PHP 

 

自定义

$GLOBALS 数组。前面的例

子可以写成:
例子

 12-2. 

 

使用

$GLOBALS 

 

替代

global

代码示例

:

<?php