请问各位童鞋, 在PHP 全局变量,有句话我没懂。

《细说PHP》中,有句话:由于函数可以视为单独的程序片段,所以局部变量会覆盖全局变量的能见度,因此在函数中并无法直接调用使用全局变量,为什么在函数内部不能使用全局变量?“... 《细说PHP》中,有句话:由于函数可以视为单独的程序片段, 所以局部变量会覆盖全局变量的能见度, 因此在函数中并无法直接调用使用全局变量,为什么在函数内部不能使用全局变量?
“能见度”是什么意思?
程序如下:
<?php
$one=200;
$two=100;
fuction demo(){
echo".($one+$two).";
}
demo();
为什么输出结果为0?

?>
展开
 我来答
abiao5555
2011-01-07 · TA获得超过591个赞
知道小有建树答主
回答量:516
采纳率:0%
帮助的人:471万
展开全部
PHP的函数都是全局性的,一旦被声明后,在文件任何地方都可以调用,内嵌在函数内和条件语句内的函数在文件加载之后不会被立即声明,而是运行到该语句后在会被声明。

在函数外声明的变量称为全局变量,全局变量在函数内不能被访问,这就是“能见度”为否
如果要在函数内使用全局变量需要使用变通的方法:
1.第一种,使用$GLOBALS 数组,这个数组保存了所有全局变量,如果使用全局变量$a可以在函数内使用 $GLOBALS['a']
2.在函数内用关键字global声明一个变量是全局变量,如果要使用全局变量$a,可以在函数内写一句 global $a; 注意,这句要单独成行,使用这一句之后,如果函数内另外定义了变量$a,则忽略函数内定义的$a ,如果在多个函数内使用全局变量$a,则每个函数都要写 global $a;
romicboy
2011-01-07 · 超过13用户采纳过TA的回答
知道答主
回答量:110
采纳率:100%
帮助的人:30.3万
展开全部
函数本身是一个整体 全局变量是不能直接调用到自定义函数里面的 打个比方 函数外面和里面同样有2个变量a赋值不一样 你试试在外面输出和在里面输出是不一样的。
能见度我的理解就是一个管辖范围的意思吧 。
第一你要是想把方法以外的变量带入方法内要像下面那样,第二你的function 写错了。

$one=200;
$two=100;
function demo($one,$two){
echo".($one+$two).";
}
demo($one,$two);

如果你想输出2个变量的和的话,双引号也有问题哦。
echo "$one+$two";
echo $one+$two;
显示的结果是不一样的。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友598742b
2011-01-07 · TA获得超过1627个赞
知道小有建树答主
回答量:2655
采纳率:100%
帮助的人:1214万
展开全部
PHP与JAVA以及C#语言还是有区别的,PHP中你可以是基于过程也就是你上面所说的程序片段或者基于类来操作。而PHP与JAVA一般情况下是基于类的,所以他们的变量还是比较容易分别全局以及局部变量的。

PHP有一些内置全局变量,比如 $_SERVER 等等。用户定义的全局变量在PHP语言中并不算是全局的,如果需要使用必须使用 global 关键词 或者 $GLOBALS 来引用。比如你上面的程序
<?php
$one = 200;
$two = 100;
function demo() {
global $one, $two;
echo $one + $two;

//下面的注释了,这样也是可以的
//echo $GLOBALS['one'] + $GLOBALS['two'];
}
demo ();
?>

这样即可输出你所需要的答案,如果不使用 global 关键词,PHP是不知道你这两个变量是哪来的,默认为0。因为他并不认为他们是个全局变量。

至于你上面所说的能见度应该是指能使用这个变量的区域吧,比如有些地方无法使用,有些地方却可以使用。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式