Chinaunix首页 | 论坛 | 博客
  • 博客访问: 313058
  • 博文数量: 38
  • 博客积分: 1334
  • 博客等级: 中尉
  • 技术积分: 869
  • 用 户 组: 普通用户
  • 注册时间: 2010-10-21 10:26
个人简介

贵在坚持

文章分类

全部博文(38)

文章存档

2013年(10)

2012年(15)

2011年(13)

分类: 系统运维

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;
?>
把引用传给一个参数,在函数内部能修改所传变量的值。


阅读(2079) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~