• 周蓬安.blog的博客—强国博客—人民网 2019-05-10
  • 紫光阁中共中央国家机关工作委员会 2019-05-10
  • 感触名家笔下的端午文化吃香粽原来可以这样文艺 2019-05-09
  • 追梦夺冠游行嘲讽詹皇 百万人面前穿订制T恤羞辱他 2019-04-27
  • 《瘟疫传说》:黑死病恐怖 姐弟在绝望中求生 2019-04-10
  • 陕西国防工业职业技术学院百名大学生志愿者敬老院慰问孤寡老人陕西国防工业职业技术学院百名大学生志愿者敬老院慰问-陕西教育新闻 2019-04-08
  • 西藏拉萨:新家园 新生活 2019-04-08
  • 尊重和保障宗教信仰自由的中国实践 2019-04-06
  • 一敬泯恩仇 俄罗斯队主帅这个动作太暖了 2019-03-20
  • 四大名著剧组首次同台忆往事 经典影视剧如何铸就? 2018-12-07
  • “天眼”凝望 探秘宇宙 2018-12-07
  • 2

    3.3PHP变量的作用域

    Posted by 撒得一地 on 2015年10月7日 in PHP入门教程
    国外稳定加速器推荐    Express | Vypr

    变量作用域其实就是变量的使用范围,变量在使用时,要符合变量的定义规则。变量必须在有效范围内使用,如果变量超出有效范围,则变量也就失去了意义。变量的作用域如下:

    局部变量 在函数的内部定义的变量,其作用域是所在函数

    全局变量 被定义在所有函数以外的变量,其作用域是整个php文件,但在用户自定义函数内部是不可用的。如果希望在用户自定义函数内部使用全局变量,则要使用global关键字声明。

    静态变量 能够在函数调用结束后仍保留变量值,当再次回到其作用域时,又可以继续使用原来的值。而一般变量是在函数调用结束后,其存储的数据就被清除,所占的内存空间被释放。使用静态变量时,要先用关键字static来声明,把关键字static放在要定义的变量前。

    在函数内部定义的变量,其作用域为所在函数,如果函数外赋值,将被认为是完全不同的另一个变量。在退出声明变量的函数时,该变量及相应的值就会被清除。

    实例1:

    <?php
      //声明全局变量
      $str = "我在函数外";
    
      function fun(){
         //定义局部变量
         $str = "我在函数内";
         echo $str."<br/>";
      }
      //调用函数
      fun();
      echo $str;
    ?>
    上面输出结果:
    我在函数内
    我在函数外
    

    静态变量在很多地方都用到,比如在博客中使用静态变量来记录浏览者的人数,每一次用户访问和离开时,都能够记录目前浏览者的人数。

    实例2:

    <?php
     function myfun(){
       //初始化静态变量
       static $num = 0;
       //静态变量加1
       $num += 1;
       echo $num." ";
     } 
    
     function myfun2(){
       $num = 0;
       $num +=1;
       echo $num." ";
     } 
    
     //调用两次myfun
     myfun();
     myfun();
    
     //输出换行
     echo "<br/>";
     myfun2();
     myfun2();
    ?>
    
    上面的运行结果:
    1 2
    1 1
    

    这里要十分注意的是,静态变量的初始化只是在第一次遇到时被执行,以后不再对其进行初始化操作。每次调用完函数后,静态变量的值仍存在内存中,不会进行清空。

    全局变量可以在程序中的任何地方访问,但在用户自定义函数内是不可用的。想要在用户自定义函数内部使用全局变量,要使用global关键字声明。

    实例3:

    <?php
      //声明全局变量$a和$b
      //并为全局变量赋值
      $a  =  1 ;
      $b  =  2 ;
      function  Sum()
     {  
        /*要想在Sum函数内使用全局变量
          必须用global对变量$a和$b进行
          内部声明
        */
        global  $a , $b ;
        $b  =  $a  +  $b ;
     }
     Sum ();
     echo  $b ;
    ?> 
    上面的输出结果:
    3
    

    对于一个函数能够声明的全局变量的最大个数,PHP没有限制。在全局范围内访问变量的第二个办法,是用特殊的 PHP 自定义$GLOBALS数组。前面的例子可以写成:

    <?php
     $a  =  1 ;
     $b  =  2 ;
     function  Sum()
     {
         $GLOBALS [ 'b' ]=$GLOBALS[ 'a' ]+ $GLOBALS[ 'b' ];
     }
     Sum ();
     echo  $b ;
    ?>  
    

    大部分的 PHP 变量只有一个单独的范围。这个单独的范围跨度同样包含了 include 和 require 引入的文件。例如:

    <?php
    $a  =  1 ;
    include  'b.inc' ;
    ?> 
    

    这里变量$a将会在包含文件 b.inc 中生效。

    PHP变量的作用范围使用时要十分小心,要区别局部变量和全局变量的使用。

    标签:, , , ,

    上一篇:

    下一篇:

    相关推荐

    2 Comments

    发表评论

    电子邮件地址不会被公开。 必填项已用*标注

    4 + 3 = ?

    网站地图|广东快乐10分开奖直播

    Copyright © 2015-2019 广东快乐10分开奖直播 All rights reserved.
    闽ICP备15015576号-1,版权所有?psz.

  • 周蓬安.blog的博客—强国博客—人民网 2019-05-10
  • 紫光阁中共中央国家机关工作委员会 2019-05-10
  • 感触名家笔下的端午文化吃香粽原来可以这样文艺 2019-05-09
  • 追梦夺冠游行嘲讽詹皇 百万人面前穿订制T恤羞辱他 2019-04-27
  • 《瘟疫传说》:黑死病恐怖 姐弟在绝望中求生 2019-04-10
  • 陕西国防工业职业技术学院百名大学生志愿者敬老院慰问孤寡老人陕西国防工业职业技术学院百名大学生志愿者敬老院慰问-陕西教育新闻 2019-04-08
  • 西藏拉萨:新家园 新生活 2019-04-08
  • 尊重和保障宗教信仰自由的中国实践 2019-04-06
  • 一敬泯恩仇 俄罗斯队主帅这个动作太暖了 2019-03-20
  • 四大名著剧组首次同台忆往事 经典影视剧如何铸就? 2018-12-07
  • “天眼”凝望 探秘宇宙 2018-12-07
  • 北京赛车开奖记录pk 排列3开奖号码 双色球彩票专家推荐 时时彩开奖视频 南国体彩41 时时彩开奖结果 梦到自已得大奖 奥拉星刮刮乐怎么用 腾讯分分彩漏洞有没有 中国福彩网上购买 赛马会官方网站 双色球福彩腾讯彩票腾讯网 4场进球彩开奖结果 北京赛车pk10下注在那 北京pk10单吊一码预测 12102七星彩中奖号