class test 
{ 
public static function a(){} 
public function b(){} 
} 
$obj = new test;
调用 代码
test::a(); 
$obj->a(); 
$obj->b();
例子 演示需要静态变量的例子
<?php教程
class myobject {
 public static $mystaticvar = 0;
 function mymethod() {
  // ::为作用域限定操作符
  // 用的self作用域而不是$this作用域
  // 因为$this只表示类的当前实例,而self::表达的是类的本身
  self::$mystaticvar += 2;
  echo self::$mystaticvar . "<br />";
 }
}
$instance1 = new myobject();
$instance1->mymethod();  // 显示 2
$instance2 = new myobject();
$instance2->mymethod();  // 显示 4
?>
<?php
class myobject {
 public static $myvar = 10;
}
echo myobject::$myvar;
// 结果: 10
?>
本函数没什么用处,因为每次调用时都会将 $w3sky 的值设为 0 并输出 "0"。将变量加一的 $w3sky++ 没有作用,因为一旦退出本函数则变量 $w3sky 就不存在了。要写一个不会丢失本次计数值的计数函数(www.111cn.net),要将变量 $w3sky 定义为静态的:
例子 使用静态变量的例子
<?php
   function test()
   {
   static $w3sky = 0;
   echo $w3sky;
   $w3sky++;
   }
   ?>
现在,每次调用 test() 函数都会输出 $w3sky 的值并加一。
看个实例
<?php 
class foo 
{ 
public static $my_static = ‘foo‘; 
public function staticvalue() { 
return self::$my_static; 
} 
} 
class bar extends foo 
{ 
public function foostatic() { 
return parent::$my_static; 
} 
} 
print foo::$my_static . "n"; 
$foo = new foo(); 
print $foo->staticvalue() . "n"; 
print $foo->my_static . "n"; // undefined "property" my_static 
print $foo::$my_static . "n"; 
$classname = ‘foo‘; 
print $classname::$my_static . "n"; // php 5.3.0之后可以动态调用 
print bar::$my_static . "n"; 
$bar = new bar(); 
print $bar->foostatic() . "n"; 
?> 
from:http://www.111cn.net/phper/php/php-static.htm
原文:http://www.cnblogs.com/alibai/p/4104555.html