在PHP的面向对象编程中,总是会有


类测试{
公共静态函数测试(){
自我::函数();

静态::函数();
}

公共静态函数(函数){
}




但是你知道自我和静态之间的区别吗

其实差别很简单,只需要写几个demo就明白了:

自我演示:




汽车类
{
公共静态函数模型(){
自::getmodel();
}

保护静态函数getmodel(){
这是一辆汽车模型;
}
}




车型:(型号);


汽车出租
{
保护静态函数getmodel(){
这是出租汽车模型;
}
}




出租车::模型();

得到的输出


这是一辆汽车模型。
这是一辆汽车模型。



可以发现,自我仍然是调用子类中父类的方法。

演示静态




汽车类
{
公共静态函数模型(){
静态::getmodel();
}

保护静态函数getmodel(){
这是一辆汽车模型;
}
}

车型:(型号);

汽车出租
{
保护静态函数getmodel(){
这是出租汽车模型;
}
}

出租车::模型();




得到的输出


这是一辆汽车模型。
这是出租汽车模型。



你可以看到,在调用静态的,甚至如果调用父类的方法的一个子类,而且调用父类的方法的方法是子类的方法(好口..)

在PHP5.3版本,有静态和自我之间的差异是什么,毕竟是世界7版。我不知道的话。

总结是,自我只能引用当前类中的方法,静态关键字允许函数在运行时动态地绑定类中的方法。