php静态变量生命周期,临时变量和静态变量的区别?

用户投稿 38 0

关于“php_静态变量_生命周期”的问题,小编就整理了【3】个相关介绍“php_静态变量_生命周期”的解答:

临时变量和静态变量的区别?

临时变量和静态变量是编程中常用的两种变量类型,它们的区别在以下方面:

临时变量(局部变量)

在函数内部创建,只能在函数内部访问,函数执行完成后被自动销毁。

每次函数调用时都会重新初始化,即每次函数执行时都会分配新的内存空间。

存储在栈内存中,空间较小。

示例代码:

c

复制代码

void foo() {

    int a = 10; // a 是一个临时变量

    printf("%d", a);

}

静态变量

在程序运行期间存在,不会因为函数执行完毕而销毁,直到程序结束才会被销毁。

只能在定义它的函数内访问,但可以通过函数提供的接口(如返回值或指针参数)传递给其他函数使用。

每次函数调用时都不会重新初始化,即每次函数执行时都会使用同一块内存空间,并保留上一次执行的值。

存储在静态存储区中,空间较大。

示例代码:

c

复制代码

void foo() {

    static int a = 10; // a 是一个静态变量

    printf("%d", a);

    a++;

}

在第一次执行 foo() 函数时,输出结果为 10。在第二次执行 foo() 函数时,输出结果为 11。这是因为 a 是一个静态变量,它的值会被保留下来,并在下一次执行时继续使用。

静态成员变量与非静态成员变量的根本区别是什么?

一、名称上的区别:成员变量也叫实例变量;静态变量也叫类变量。

二、内存存储的区别:成员变量存储到堆内存的对象中,静态变量存储到方法区的静态区中。

三、生命周期不同:

1)成员变量随着对象的出现而出现,随着对象的消失而消失。

2)静态变量随着类的出现而出现,随着类的消失而消失。四、补充:

1.静态变量使用 static 修饰符进行声明;

2.在类被实例化时创建,通过类进行访问不带有 static 修饰符声明的变量称做非静态变量;

3.在对象被实例化时创建,通过对象进行访问;

4.一个类的所有实例的同一静态变量都是同一个值,同一个类的不同实例的同一非静态变量可以是不同的值;

5.静态函数的实现里不能使用非静态成员,如非静态变量、非静态函数等。6.示例:

1)using System;

静态变量与实例变量的区别?

静态变量:独立存在的变量,只是位置放在某个类下,可以直接类名加点调用静态变量名使用。并且是项目或程序一启动运行到该类时就直接常驻内存。不需要初始化类再调用该变量。用关键字static声明。静态方法也是同样,可以直接调用。

实例变量:就是相当于该类的属性,需要先初始化该类,就是new 该类后,才可以调用。但是该类未被再次使用,被垃圾回收器回收后,该实例也将不存在了,就是不在内存中了。

区别如下:

1.存储区域不同:静态变量存储在静态存储区,普通变量存储在堆中;

2.静态变量与类相关,普通变量则与实例相关

3.内存分配方式不同。

4.生命周期不同。

到此,以上就是小编对于“php_静态变量_生命周期”的问题就介绍到这了,希望介绍关于“php_静态变量_生命周期”的【3】点解答对大家有用。

抱歉,评论功能暂时关闭!