$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
语言有一点点不同,在
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