【PHP】static静态变量,静态方法

来源:互联网 发布:使命召唤4mac迅雷下载 编辑:程序博客网 时间:2024/06/05 15:52

static的特点:

1.局部变量在函数完成时就会自动释放,而用static声明的局部变量不会被释放

2.用static声明的变量会保存上一次被调用的值,即只会被初始化一次

 这个例子的输出结果为 0,1,2

<?php function myTest(){    static $x=0;   echo $x;    $x++;} myTest();myTest();myTest();?>


定义一个person类,age变量为静态变量

访问静态变量的两种方式:1.类名::变量名 2.对象名::对象名

不同实例对象所访问的静态变量是同一个(共享),在一个对象中修改静态变量,别的对象访问的静态变量值也发生改变。

<?php  class Person{  static $age = 10; static function des(){ //self:指的是当前的类   $this指的是当前的实例对象 echo "<hr>".self::$age;}//构造方法function __construct(){//只要创建对象,构造方法就会自动执行echo "对象创建";}function __destruct(){//默认程序执行完成后调用析构方法echo "死亡方法";}} //1.实例化两个对象per1,per2$per1 = new Person();$per2 = new Person();//2.访问静态变量的两种方式: //1.通过类访问静态变量 ---------echo Person::$age;//2.直接通过实例对象访问常量--------echo $per1::$age;  //3.不同实例对象所访问的静态变量是同一个(共享)echo $per1::$age;//输出10echo $per2::$age;//输出10//所以在一个对象中修改静态变量,别的对象访问的静态变量值也发生改变$per2::$age=100;echo $per1::$age;//输出100 //4.释放内存$per2 = null;     //5.调用静态方法:静态方法不会每个实例都去初始化,类似于原型方法Person::des(); ?>



原创粉丝点击