贵在坚持
分类: 系统运维
2013-05-25 10:40:07
php变量的作用域
一个变量声明后,它是有作用域的。在PHP中,变量的作用域可以用一句话来概括:就是在包含它的那个语句块自身及所有以下部分。
语句块一般可分为:页面部分、函数、类。
如果一个变量在页面部分,则在页面部分有效;
如果一个变量在函数里,则在其所在函数及以下部分有效;
如果一个变量在类里面,则在其所在类里面有效。
例 6-11. 变量的作用域
$var="页面变量\n";
function
a(){
$a="A里变量!";
echo "A:".$var."\n";
}
function b(){
echo
"B:".$var."\n";
$var="B修改";
}
@a();
@b();
echo
"页面变量:".$var;
echo "函数A中变量:".@$a;
?>
$a="aaaaa";
function b(){
$b="bbbbb";
echo "$b";
echo "$a";
}
b();
//显示bbbbbaaaaa
?>
在函数里面,利用 $GLOBALS 可以调用页面部分声明的变量。
例 6-12. 利用 $GLOBALS全局数组来调用页面部分声明的变量
$var="页面变量";
function
fun(){
echo "未GLOBAL的:".$var."\n";
echo "GLOBAL 里的:$GLOBALS[var]";
}
@fun();
?>
例 6-13. 修改一个 $GLOBALS 全局数组值
$var="页面变量";
function
fun(){
$GLOBALS['var']="已经被改了!";
}
fun();
echo $var;
?>
也可以利用关键字 global 来使得页面的变量在函数中得以使用。如果有几个需要全局化的变量,变量与变量之间用 , 隔开。
例 6-14. 关键字 global 调用页面变量
$a="页A\n";
$b="页B\/";
function
fun(){
global $a,$b;
$a="页A重新赋了值\n";
$b="页B重新赋了值\n";
}
echo
"函数里global后:\n";
fun();
echo $a,$b;
?>
PHP自带了的函数称为内置函数。PHP有大量的内置函数,这些函数都是PHP帮我们写好了的,因些我们可以直接调用,而不必去定义。
关于内置函数,可以查看PHP手册。
例 6-15 传入一个引用作为参数
function
sum($x,$y,&$sum=0){
$sum=$x+$y;
return 1;
}
$a=50;
print
sum(1,2,$a)."\n";
print $a;
?>
把引用传给一个参数,在函数内部能修改所传变量的值。