<?php
$a=5;
function table(){
     echo $a.'<br/>';
     $a=2;
     echo $a.'<br/>';
}table();
?>
第4行报错a是一个没有定义的变量
前面定义的a应该是一个全局变量,那么应该在全局都可见,为什么在函数内部看不到?

解决方案 »

  1.   

    这种申明、使用变量方法,C语言里可行,php不可以。
    函数内部使用全局变量,必须传参、或申明global,$GLOBALS
      

  2.   

    function table(){
      global $a;
      echo $a.'<br/>';
      $a=2;
      echo $a.'<br/>';
    }
      

  3.   

    全局变量是定义在任何函数之外,其作用域是整个PHP文件,但是与其他高级语言不一样的是,其在函数内部不可见.,若要使其可见就需要用global 声明
    <?php
    $a=5;
    function table(){
    global $a;
      echo  $a.'<br/>';
      $a=2;
      echo $a.'<br/>';
    }table();
    ?>
      

  4.   

    嗯,函数里面引用全局的变量要加 global 或者用 $GLOBALS数组访问
      

  5.   

    php的全局变量在函数内部访问要加global
    global用来引入了函数外部的变量
      

  6.   

    global 可以得全局变量,但是我建议你还是使用传参的方式来解决,global用多了程序很混乱!