• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

php中的static静态变量

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

今天碰到了一个php的小试题,一直没有明白为什么第三次循环是static静态变量没有起作用呢?想了好久才明白原理。

<?php 
    class MyClass{
       function add($b){
        static $a=1;
        $a+=$b;
        return $a;
        }
    }
    $class = new MyClass();
    for($i=0;$i<=5;$i++){
          $c=$class->add($i);
    }
    echo($c);


    /*php中的变量作用范围的另一个重要特性就是静态变量(static 变量)。
    静态变量仅在局部函数域中存在且只被初始化一次,当程序执行离开此作用域时,其值不会消失,会使用上次执行的结果。*/

    分析:
    $i = 0;
    $i<=5;(true)
    $i++ =1;
    $c=$class->add(0); 
    $b = 0;
    static $a=1;
    $a+=$b = 1+0;
    $c=1;

    第二次循环:

    $i = 1;
    $i<=5;(true)
    $i++ =2;
    $c=$class->add(1); 

    $b=1;
    $a = 1;
    $a+=b = 1+1;
    $c=2; 

    第三次循环:
    $i = 2;
    $i<=5;(true)
    $i++ =3;
    $c=$class->add(2); 
    $b=2;
    $a = 2;
    $a+=b = 4;
    $c=4; 

    第四次循环:

    $i = 3;
    $i<=5;(true)
    $i++ =4;
    $c=$class->add(3); 
    $b=3;
    $a = 4;
    $a+=b = 4+3;
    $c=7;

    第五次循环:

    $i = 4;
    $i<=5;(true)
    $i++ =5;
    $c=$class->add(4); 
    $b=4;
    $a = 7;
    $a+=b = 7+4;
    $c=11;


    第六次循环:

    $i = 5;
    $i<=5;(true)
    $i++ =6;
    $c=$class->add(5); 
    $b=5;
    $a = 11;
    $a+=b = 11+5;
    $c=16;

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
php关闭浏览器不终止运行发布时间:2022-07-10
下一篇:
php写的仿爱帮网电话号码字符串处理(防采集)。发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap