• php中的static静态变量


    今天碰到了一个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;

     

  • 相关阅读:
    8.25 欢乐emmm赛
    树专练
    字符串知识点大集合
    8.12 小组解题
    暑假大联欢 happynk 2019.8.11
    游记-多省联考 2019
    图论-匈牙利算法模板
    数论-哈哈哈好快乐
    数论-线性基
    其他-私人♂收藏(比赛记录 Mar, 2019)
  • 原文地址:https://www.cnblogs.com/yangzailu/p/7878453.html
Copyright © 2020-2023  润新知