## 类的静态变量/方法访问 在类内部访问静态成员属性或者方法,使用 self::(注意不是 $slef),如: self:: $country self:: myCountry() 在子类访问父类静态成员属性或方法,使用 parent::(注意不是 $parent),如: parent:: $country parent:: myCountry() 外部访问静态成员属性和方法为 类名/子类名:: ,如: Person::$country Person::myCountry() 但静态方法也可以通过普通对象的方式访问。 ## 变量/方法 ### 声明 <?PHP function foo(){ static $int = 0;// correct static $int = 1+2; // wrong (as it is an expression) static $int = sqrt(121); // wrong (as it is an expression too) $int++; echo $int; } ?> ### 使用 <?PHP function Test() { static $mart = 0; echo $mart; $mart++; } ?> 现在,每次调用 Test() 函数都会输出 $mart 的值并加一。 ### 静态变量与递归函数 递归函数是一种调用自己的函数。写递归函数时要小心,因为可能会无穷递归下去。必须确保有充分的方法来中止递归。一下这个简单的函数递归计数到 10,使用静态变量 $count 来判断何时停止。 <?PHP function Test(){ static $count = 0; $count++; echo $count; if ($count < 10) { Test(); } $count--; } ?> 运行结果: 12345678910 静态变量可以按照上面的例子声明。如果在声明中用表达式的结果对其赋值会导致解析错误。