变量是用来存储信息的“容器”,PHP变量中有这几个规则:以$符号开始,后面接着变量的名称;变量名必须以字母或下划线字符开始;变量名只能包含字母数字字符及下划线;变量名区分大小写;
变量作用域是指脚本中变量可被引用或使用的部分。PHP有四种不同的变量作用域:static parameter global local.
局部和全局作用域(loacal global)
在所有函数外定义的变量拥有全局作用域,在函数内部声明的变量是局部变量,仅能在函数内部访问。要在一个函数中使用全局变量,需要使用global关键字。
//使用global关键字
<?php
$x=10;
$y=20;
function test(){
global $x,$y;
$y=$x+$y;
}
test();
echo $y;//输出30
//全局变量局部变量
<?php
$x=5; // 全局变量
function myTest()
{
$y=10; // 局部变量
echo "<p>测试函数内变量:<p>";
echo "变量 x 为: $x"; //输出错误 Notice: Undefined variable:
echo "<br>";
echo "变量 y 为: $y";
}
myTest();
echo "<p>测试函数外变量:<p>";
echo "变量 x 为: $x";
echo "<br>";
echo "变量 y 为: $y"; //输出错误 Notice: Undefined variable:
PHP将所有的全局变量存储在一个数组中,名为 $GLOBALS[index] 的数组中。
index 保存变量的名称。
static作用域
当一个函数完成时,它的所有变量通常都会删除,如果期望某个局部变量不被删除,在第一次声明变量时使用static关键字。
<?php
function test(){
static $y=1;
echo $y;
$y++;
}
echo test(); //1
echo test(); //2
echo test();
parameter作用域
参数是通过调用代码将值传递给函数的局部变量。
<?php
function myTest($x)
{
echo $x;
}
myTest(5);