变量的范围即它定义的上下文背景(也就是它的生效范围)。大部分的 PHP 变量只有一个单独的范围。这个单独的范围跨度同样包含了 include 和 require 引入的文件。
$a = 1;
include 'b.php';
这里变量 $a 将会在包含文件 b.inc 中生效。但是,在用户自定义函数中,一个局部函数范围将被引入。任何用于函数内部的变量按缺省情况将被限制在局部函数范围内。例如
$a = 1; /* global scope */
function Test()
{
echo $a; /* reference to local scope variable */
}
Test();
这个脚本不会有任何输出,因为 echo 语句引用了一个局部版本的变量 $a,而且在这个范围内,它并没有被赋值。**PHP 中全局变量在函数中使用时必须声明为 global。**
1.global
在函数体内定义的global变量,定义后可以全局使用使用,在函数体外定义的global变量不能在函数体内使用,具体看下面示例。
(1)在函数体内定义global变量,函数体内可以使用。
<?php
$a = 1;
$b = 2;
function Sum()
{
global $a, $b; //在里面声明为全局变量
$b = $a + $b;
}
Sum();
echo $b;
//结果 3
//以上脚本的输出将是“3”。在函数中声明了全局变量 $a 和 $b 之后