静态方法也叫类方法,静态方法是属于所有对象实例:static function+方法名
在类外部:类名::类方法名或者对象名->类方法名
在类内部:self::类方法名或者类名::类方法名
要是一个变量需要所有的变量共享的时候需要引进静态变量; 要是一个方法只去操作静态变量,就使用静态方法
当操作静态变量的时候,需要操作静态方法,静态方法中不能访问非静态属性(变量)
案例说明:统计所有学生交的学费
class stu{
public static $fee;
public $name;
//构造函数
function __construct($name){
$this->name=$name;
}
//入学
static function enter($ifee){
self::$fee+=$ifee;
}
//获取总学费
static function getfee(){
return self::$fee;
}
}
//创建学生
$stu1=new stu("老一");
//通过类名调用静态方法
//stu::enter(340);
$stu1->enter(340);
$stu2=new stu("老二");
$stu2->enter(500);
echo "学费是".stu::getfee();
静态方法的特点:
1.静态方法只能操作静态方法,不能操非静态变量
2.普通的成员方法,既可以操作非静态变量,也可以操作静态变量