静态变量、成员和方法

静态变量

  静态变量是只存在于函数作用域的变量,不过,在函数执行完成以后,这种变量的值不会丢失,也就是说,在下一次调用这个函数时,变量仍然会记得原来的值.

  要将某个变量定义为静态的,只需要在变量前面加上static关键字即可.

function test(){
    static $a = 1;
    $a *= 2;
    echo $a.‘<br/>‘;
}
test();
test();
test();
//结果 2  4  8

  值得注意的是,变量的初始默认值为1,而这一赋值操作只会在变量第一次被初始化时发生.函数每次执行的过程中,这一操作不会被调用.

类中静态元素的使用

静态成员

  静态成员是一种类变量,可以把它看成是属于整个类而不是属于类的某个实例.与一般的实例变量不同的是,静态成员只保留一个变量值,而这个变量值对所有的实例都是有效的,也就是说,所有的实例共享这个成员.

class MyObject{
    public static $myStaticVar = 0;

    function myfunc(){
        self::$myStaticVar += 2;
        echo self::$myStaticVar .‘<br/>‘;
    }
}
$instance1 = new MyObject();
$instance1->myfunc();
$instance2 = new MyObject();
$instance2->myfunc();

//结果 2  4

时间: 2024-08-04 02:33:00

静态变量、成员和方法的相关文章

MVC - php静态变量, 成员和方法

总结下,使用静态成员是为了保证在脚本周期里不被重新初始化,因此避免对类进行实例化而是用类名直接调用或者访问(第一次调用或者访问的时候生成单例对象,再调用的时候直接返回这个单例对象). 在MVC中常被用作以工厂模式生成表Model类单例对象,工厂类中设置一个static $list数组成员保存所有生成的表Model单例.如下Factory.class.php(Factory类会自动加载): class Factory{     public static function M($class_nam

php中static静态变量的使用方法详解

php中的变量作用范围的另一个重要特性就是静态变量(static 变量).静态变量仅在局部函数域中存在且只被初始化一次,当程序执行离开此作用域时,其值不会消失,会使用上次执行的结果. 看看下面的实例: 复制代码 代码如下: <?php function Test() { $w3sky = 0; echo $w3sky; $w3sky++; } ?> 本函数每次调用时都会将 $w3sky 的值设为 0 并输出 "0".将变量加一的 $w3sky++ 没有其到效果,因为一旦退出

静态变量 常量 和方法

1.在静态方法中不可以使用this关键字 2.在静态方法中不可以直接调用非静态方法 如果在执行类,希望先执行类的初始化动作,可以使用static定义一个静态区域.如: 1 class example{ 2 static{ 3 //some 4 } 5 } 主方法的形参为数组,其中args[0]~args[n]分别代表程序的第一个参数到n个参数,可以使用arg.length获取参数的个数. 1 public static void main(String[] args) { 2 //args.le

成员变量(实例变量)&amp;局部变量&amp;静态变量(类变量)的区别

成员变量(实例变量)&局部变量区别: (1)作用域 成员变量:针对整个类有效. 局部变量:只在某个范围内有效.(一般指的就是方法,语句体内) (2)存储位置 成员变量:随着对象的创建而存在,随着对象的消失而消失,存储在堆内存中. 局部变量:在方法被调用,或者语句被执行的时候存在,存储在栈内存中. 当方法调用完,或者语句结束后,就自动释放. (3)初始值 成员变量:有默认初始值. 局部变量:没有默认初始值,使用前必须赋值. 成员变量(实例变量)&静态变量(类变量)区别: A:调用方式 静态变

成员变量和局部变量,静态变量的区别

成员变量和局部变量,静态变量的区别 1.成员变量和局部变量的区别 1)在类中的位置不同 成员变量:在类中方法外 局部变量:在方法定义中或者方法声明上 2)在内存中的位置不同 成员变量:在堆内存(成员变量属于对象,对象进堆内存) 局部变量:在栈内存(局部变量属于方法,方法进栈内存) 3)生命周期不同 成员变量:随着对象的创建而存在,随着对象的消失而消失 局部变量:随着方法的调用而存在,随着方法的调用完毕而消失 4)初始化值不同 成员变量:有默认初始化值 局部变量:没有默认初始化值,必须定义,赋值,

成员变量、局部变量、静态变量的区别及

成员变量在堆区,因为成员属于对象的一部分,而对象分配在对中 局部变量分配在占中,对象的引用也分配在栈中 静态变量分配在方法区的静态区中 1:成员变量和局部变量的区别 (1)在类中的位置不同 成员变量:类中方法外 局部变量:方法定义中或者方法声明上 (2)在内存中的位置不同 成员变量:在堆中 局部变量:在栈中 (3)生命周期不同 成员变量:随着对象的创建而存在,随着对象的消失而消失 局部变量:随着方法的调用而存在,随着方法的调用完毕而消失 (4)初始化值不同 成员变量:有默认值 局部变量:没有默认

PHP 的 返回引用(方法名前加&) 和 局部静态变量(static)

先阅读手册==========从函数返回一个引用,必须在函数声明和指派返回值给一个变量时都使用引用操作符 & : 例子 17-13. 由函数返回一个引用 <?php   function &returns_reference()   {       $someref = 0;       return $someref;   }      $newref = &returns_reference();//相当于 $newref = &$someref;   ?>

java之静态函数和静态变量

静态变量: 静态变量好似一种成员变量,它的特点是前面有static. 普通变量会有多份,它在每个对象当中都存在,但是静态变量只有一份,它是属于类的. 静态变量的调用方法: 1.类名.变量名 Customer.name = "中南大学" 2.对象名.类名 a1.name = "中南大学"第二种更加的常见 普通变量            静态变量 类名.访问       不可以                  可以 对象名.访问      可以            

Spring注解无法注入静态变量

参考:https://blog.csdn.net/BuquTianya/article/details/49009831 1.使用xml方式声明Bean,在xml中注入静态变量: 2.使用一个非静态的变量注入,然后在@PostConstruct标记的方法中给静态变量赋值. 3,在静态方法中获取bean AppConfMapper appConfMapper = (AppConfMapper) BeanHoldFactory.getApplicationContext().getBean("app

spring 给静态变量注入值

一般在spring中,给static变量加上@Autowired注解的时候会报空指针异常错误. 解决: 1.通过xml配置文件配置 这个就不多说了. 2.通过注解 @Component public class StructUtil { private static AttendanceMapper attendanceMapper; @Autowired public void setAttendanceMapper(AttendanceMapper attendanceMapper) { S