关于“php_静态变量的生命周期”的问题,小编就整理了【5】个相关介绍“php_静态变量的生命周期”的解答:
静态局部变量的声明类型?静态局部变量的声明方式
在局部变量的类型前加上static即可进行静态局部变量的声明和定义
静态局部变量的作用域
和局部变量相同,从变量声明的位置起到花括号结束。
静态局部变量的生命周期
与局部变量不同,静态局部变量的生命周期是与程序“共存亡”。
即从加载资源(执行代码前)开始,到程序关闭,都是变量的生命周期。
为了验证此说法,可执行下列代码:
执行结果为:
因为每次执行fun函数时都要重新定义一边局部变量a,所以被打印出的a的值始终是1。
而因为b为静态局部变量,在代码执行前,即资源加载时就已经执行了"static int b = 0;"这条代码,所以在执行代码的过程中,并没有"static int b = 0;"这条代码,因为早就执行掉了,相当于这条语句已经“没了”。
静态变量与实例变量的区别?静态变量:独立存在的变量,只是位置放在某个类下,可以直接类名加点调用静态变量名使用。并且是项目或程序一启动运行到该类时就直接常驻内存。不需要初始化类再调用该变量。用关键字static声明。静态方法也是同样,可以直接调用。
实例变量:就是相当于该类的属性,需要先初始化该类,就是new 该类后,才可以调用。但是该类未被再次使用,被垃圾回收器回收后,该实例也将不存在了,就是不在内存中了。
区别如下:
1.存储区域不同:静态变量存储在静态存储区,普通变量存储在堆中;
2.静态变量与类相关,普通变量则与实例相关
3.内存分配方式不同。
4.生命周期不同。
类的静态成员和非静态成员有何区别?非静态成员也叫成员变量,二者区别如下:
1、名称上的区别成员变量也叫实例变量;静态变量也叫类变量。
2、内存存储的区别成员变量存储到堆内存的对象中,静态变量存储到方法区的静态区中。
3、生命周期不同成员变量随着对象的出现而出现,随着对象的消失而消失。静态变量随着类的出现而出现,随着类的消失而消失。
静态位变量怎么定义?“静态变量”这一术语有两个容易混淆的定义:
语言无关的通用定义:与程序有着相同生命周期(英语:Object lifetime)的变量;
C族语言特有的定义:以static存储类声明的变量。
而在以Pascal为代表的许多程序语言中,所有局部变量都由系统自动分配存储空间,而所有全局变量的存储空间则以静态分配的方式获取(对应“静态变量”),因此由于实际上“局部变量”和“全局变量”这两个术语已足以涵盖所有的情况,在这些程序语言中通常不使用“静态变量”这一术语,而直接以“全局变量”代之。一般来说,在这些程序语言中,静态变量就是全局变量,而即使在有明确区分全局和静态变量的程序语言中,在编译后的代码里二者也以相同的方式获取存储空间。而今术语“静态变量”的概念则主要基于C族语言的“static”的定义(即定义2)。
什么是静态变量?静态变量(Static Variable)在计算机编程领域指在程序执行前系统就为之静态分配(也即在运行时中不再改变分配情况)存储空间的一类变量。
与之相对应的是在运行时只暂时存在的自动变量(即局部变量)与以动态分配方式获取存储空间的一些对象,其中自动变量的存储空间在调用栈上分配与释放。
到此,以上就是小编对于“php_静态变量的生命周期”的问题就介绍到这了,希望介绍关于“php_静态变量的生命周期”的【5】点解答对大家有用。