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