global问题

Cain 2003-07-11 09:56:06
程序一:
<?
function test($a=0,$b=0,$c=0)
{
while ($a<$b){
$d=$a+$b;
global $c; /*注意这行*/
$c=$c+$d;
echo $c;
echo "<br>";
return $c;
}
}
test(1,2);
test(1,2);
?>
结果:
3
6

程序二:
<?
global $c;/*还有这行*/
function test($a=0,$b=0,$c=0)
{
while ($a<$b){
$d=$a+$b;
$c=$c+$d;
echo $c;
echo "<br>";
return $c;
}
}
test(1,2);
test(1,2);
?>
结果:
3
3

请问在function外定义全局变量和在function里定义有什么区别?
...全文
29 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
mrsun 2003-07-11
  • 打赏
  • 举报
回复
$c为局部变量
函数中有声明了global $c;
当在函数中声明了global $c;
$c才可用
edward0716 2003-07-11
  • 打赏
  • 举报
回复
全局都成了公有和私有的关系了。
global VS public(private)
呵呵~~
Cain 2003-07-11
  • 打赏
  • 举报
回复
是不是应该在程序二中加上
$globals $c;
Cain 2003-07-11
  • 打赏
  • 举报
回复
那我应该如何在程序二中申明使用他呢
xuzuning 2003-07-11
  • 打赏
  • 举报
回复
程序一
function test($a=0,$b=0,$c=0)
$c为局部变量
函数中有声明了global $c; 表示使用全局的$c而不是使用函数的参数$c
这一点你可以从
test(1,2,5);
test(1,2,9);
看到,尽管我给了第三个参数,但对结果毫无影响

程序二
虽然定义了全局变量$c,但函数中并没有声明使用他
xizi2002 2003-07-11
  • 打赏
  • 举报
回复
按定义来说应是一样的.
就是定义的次序有所不同,有点糊涂了谁来补充一下.
想想着.

21,893

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧