php静态变量理解----(变量前面添加static关键字)

  php中除了常规类和方法的使用,访问控制之外,还有静态关键字static,静态变量可以是局部变量也可以是全局变量,当一个程序段执行完毕时,静态变量并没有消失,它依然存在于内存中,下次在定义时还是以前的值,常用于递归或子函数中保留之前的值,可以用来定义变量和方法,作用就不具体说了,说一下使用方式,下面简单的代码:

 1 <?php
 2 function add($i){
 3     static $sum = 0;
 4     if($i<=100){
 5         $sum=$sum+$i;
 6         add($i+1);
 7     }
 8     echo $sum;die;
 9 }
10 add(1);

效果如图:

时间: 2024-10-16 22:31:59

php静态变量理解----(变量前面添加static关键字)的相关文章

静态局部变量(面向过程的static关键字)

对于一个完整的程序,在内存中的分布情况如下图: 一般程序的由new产生的动态数据存放在堆区,函数内部的自动变量存放在栈区.自动变量一般会随函数的退出而释放空间,静态数据(即使是函数内部的静态局部变量)也存放在全局数据区.全局数据区的数据并不会因为函数的退出而释放空间. 静态局部变量 在局部变量前,加上关键字static,该变量被定义成为一个静态局部变量. 我们先举一个静态局部变量的例子,如下: 1 #include<iostream> 2 using namespace std; 3 4 vo

python3 变量理解 解释器理解 常量理解 用户交互理解

解释器理解 解释器,就是下载的python3,他就是用来把写好的python代码转换成某种编码,然后再把编码转成CPU能读懂的二进制语言. 官方的解释器python  是用C写的,也叫cpython,它先把python代码转成C能得编码,然后再转成机器语言,既二进制编码  同理,还有java写的python解释器,叫jpython等等,有好多   特别的一个是 pyppthon解释器 他是直接把代码转成二进制语言,缺点是慢 变量理解 变量就是用来储存中间计算结果得,变量名就是给一块存有数据得空间

c++ static 关键字总结

1. 静态全局变量 在全局变量之间加上static关键字,就被定义为静态全局变量. 特点:在全局数据区分配内存 未初始化则被自动初始化为0 在声明它的文件内可见,在声明它之外的文件不可见,其他文件中可使用同名变量 2. 静态局部变量 在局部变量前加上static关键字,就被定义为静态局部变量 特点:在全局数据区分配内存,但是作用域为局部作用域 一般在声明时初始化,只能被显示初始化一次,以后调用该函数时不被初始化 若未显示初始化,初始化为0 3.静态函数 在函数返回类型前加上static关键字,就

面向对象基础——static关键字和代码块的使用

具体内容 在Java中可以使用static声明属性和方法,因为之前多部分属性和方法都属于非static的,这样一来,每个对象都占有自己的内容,如果现在希望一个属性被所有的对象所共同拥有,则可以将其声明为static类型,声明为static类型的属性和方法之后此属性或方法也称为类非,可以由类名称直接调用. 使用static声明属性 static可以声明全局属性,全局属性到底有哪些作用?如下所示 class Person{ // 定义Person类 String name ; // 定义name属性

java第五章:面向对象(oop)之 static关键字

java程序在执行过程中,类,对象以及它们成员加载.初始化的顺序如下: 1.首先加载要创建对象的类及其直接与间接父类. 2.在类被加载的同时会将静态成员进行加载,主要包括静态成员变量的初始化,静态语句块的执行,在加载时按代码的先后顺序进行. 3.需要的类加载完成后,开始创建对象,首先会加载非静态的成员,主要包括非静态成员变量的初始化,非静态语句块的执行,在加载时按代码的先后顺序进行. 4.最后执行构造器,构造器执行完毕,对象生成.上面四段话意思就是静态变量(全局变量)创建时间要早于new对象(成

final关键字,static关键字

Final final的意思为最终,不可变.final是个修饰符,它可以用来修饰类,类的成员,以及局部变量.不能修饰构造方法. 注意: 被final修饰的类不能被继承但可以继承别的类 class Yy {} final class Fu extends Yy{} //可以继承Yy类 class Zi extends Fu{} //不能继承Fu类 final修饰成员方法:    1.该方法可以被子类继承,但是不能被重写    2.从父类那里继承来的方法重写后可以加final关键字 class Fu

【C/C++】static关键字

首先static的最主要功能是隐藏,其次因为static变量存放在静态存储区,所以它具备持久性和默认值0. static性质 隐藏 当同时编译多个文件时,未加static前缀的全局变量和函数都具有全局可见性,其它的源文件也能访问. 全局变量名或者函数名前加static,就会对其它源文件隐藏.利用这一特性可以在不同的文件中定义同名函数和同名变量,而不必担心命名冲突. static全局变量只初始化一次,防止在其他文件中被引用. static可以用作函数和变量的前缀,对于函数来讲,static的作用仅

07_面向对象(成员变量和局部变量区别、类作为形式参数的问题、匿名对象、封装、private关键字、this关键字、构造方法、成员方法、static关键字、静态变量和成员变量、main方法)_02

7:构造方法(掌握)    (1)作用:用于对对象的数据进行初始化    (2)格式:        A:方法名和类名相同        B:没有返回值类型,连void都不能有        C:没有返回值                思考题:构造方法中可不可以有return语句呢?        可以.而是我们写成这个样子就OK了:return;        其实,在任何的void类型的方法的最后你都可以写上:return;    (3)构造方法的注意事项        A:如果我们没写构

9.Java static关键字以及Java静态变量和静态方法

static 修饰符能够与变量.方法一起使用,表示是“静态”的. 静态变量和静态方法能够通过类名来访问,不需要创建一个类的对象来访问该类的静态成员,所以static修饰的成员又称作类变量和类方法.静态变量与实例变量不同,实例变量总是通过对象来访问,因为它们的值在对象和对象之间有所不同. 请看下面的例子: public class Demo { static int i = 10; int j; Demo() { this.j = 20; } public static void main(Str