+ -
当前位置:首页 → 问答吧 → 不是说函数内的变量有效区域只在这个函数内吗,为什么while不是?

不是说函数内的变量有效区域只在这个函数内吗,为什么while不是?

时间:2010-01-09

来源:互联网

为什么while内的变量可以直接用函数外赋予的值,而自定义函数内的变量却不可以?
如:
$a=1;
while($a){
       echo ++$a;
       break;
}
输出 2
$a=5;
function e($a){
       echo ++$a;
}

这个自定义函数就不可以用外面的值,都是函数,为什么具备的特性不一样呢

作者: sinyo   发布时间: 2010-01-09

复制代码
  1. function trace($trace)
  2. {
  3.     echo $trace;
  4. }
  5. $a = 'test';
  6. trace($a);
  7. 注意,他不是自己调用的,是你给传进去的

作者: cain   发布时间: 2010-01-09

php中函数有作用域的概念 而没有块作用域的概念 所以while内的变量可以直接用函数外赋予的值

作者: jerry.xiaosa   发布时间: 2010-01-09

$a=5;
function e($a){
       echo ++$a;
}
只是定义了一个变量和一个函数,要调用函数还要加一句 e($a);

作者: dragonwang   发布时间: 2010-01-09