函数局部变量函数内部调用(修改)外部变量

时间: 2009-04-20  分类: php+Mysql  收藏
<?php
//函数内部声明的变量为局部变量,只能在本函数内部访问;
     $a = 100;
     function demo()
     {
         echo $a . '###' . '<br>';
     }
     demo();//显示###,不会显示函数内部$a的值,demo()函数内的$a为局部变量
//要要函数内部调用外部变量,需声明外部变量为全局变量,如:
     $b = 100;
     $d = 'abc';
     function demo2()
     {
         global $b , $d; //用豆号声明多个全局变量;
         echo $b . $d . '#####' . '<br>';
     }
     demo2();//显示100abc#####,能显示$b的值,已声明为全局变量
//或者用全局数组GLOBAL[""]的方式,声明为全局变量,如:
     $c = 100;
     function demo3()
     {
         $GLOBALS['c']; //注意这里是"c",不是$c;
         echo $GLOBALS['c'] . '########' .'<br>';   //注意这里用$GLOBALS['c']访问$c,因为他已是数组的元素;
     }
     demo3();
//在函数内部声明外部变量为全局变量,并在函数内部修改外部变量的值;
     $e = 100;
     function demo4()
     {
         global $e;
         $e = 900 . '<br>';
         echo $e;
     }
     demo4(); //显示900,函数内部声明$e为全局变量,里面的$e = 900;将是修改$e的值;
//函数在调用结束后会消失,下次调用会重新执行每行代码,如:
     function test()
     {
         $a = 0;
         echo $a . '<br>';
         $a++;
     }
     test(); //0 调用结束后,a的值变成1;但随调用的结束函数从内存消失;
     test(); //0 上次调用的时候函数消失,这次重新调用;
     test(); //0
     test(); //0
?>
分享到:

评论

昵 称: