• 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;

     

  • 相关阅读:
    前后端分离的坑
    appscan 对于csrf漏洞扫描的坑
    appscan执行过程
    app scan状态码的坑
    linux修改jdk版本
    软件测试之性能测试
    jmeter 从文件中读取内容 CSV数据文件设置(CSV Data Set Config)
    robotframework基本操作
    robotframework生成随机数
    RobotFramework获取table的行数
  • 原文地址:https://www.cnblogs.com/yangzailu/p/7878453.html
Copyright © 2020-2023  润新知