kevin0490 发表于 2015-8-30 12:29:00

PHP静态变量、成员、方法

1、静态变量是只存在于函数作用域中的变量,注释:执行后这种变量不会丢失(下次调用这个函数时,变量仍会记着原来的值)。
定义静态变量的方法只需要在变量前面加上static关键字即可。
2、静态成员是一种类变量,可以把它看成属于整个类而不是类的某个实例。与一般实例变量不同之处:静态成员只保留一个变量值,而这个变量值对所有的实例是有效的(所有的实例都共享这个成员)。
3静态方法:静态方法的规则和静态变量是相同。使用static关键字可以将方法标记为静态方法,通过类的名称和作用域限定符(::)(paamayim nekudotayim)可以访问到静态方法.

[*]<?php
[*]    var_dump("Hellow word!");
[*]    /**
[*]   * 测试例子
[*]    */
[*]    class myObject{
[*]      public static $myStaticVar = 0; //声明一个共用静态的变量myStaticVar赋初始值0
[*]      function myMethod(){
[*]            self::$myStaticVar += 2;
[*]            echo self::$myStaticVar . "\n";
[*]      }
[*]      static function myMethod2(){
[*]            self::$myStaticVar += 2;
[*]            echo self::$myStaticVar . "\n";
[*]      }
[*]
[*]    }
[*]      
[*]    class MyOtherObject extends myObject{
[*]      public static $myStaticVar = 0; //重写了myStaticVar
[*]      function myOtherMethod(){
[*]            echo parent::$myStaticVar ."\n";//parent访问夫类
[*]            echo self::$myStaticVar . "\n";//self访问当前类
[*]      }
[*]    }
[*]      
[*]    $instance1 = new myObject(); //实例化myObject
[*]    $instance1->myMethod();
[*]    $instance2 = new myObject();
[*]    $instance2->myMethod();
[*]    $instance3 = new MyOtherObject();
[*]    $instance3->myOtherMethod();
[*]      
[*]    echo myObject::$myMethod2();//
[*]?>
页: [1]
查看完整版本: PHP静态变量、成员、方法