请看下面的实例
- <?php
- class A{
- public static function call(){
- echo "class A<br/>";
- }
- public static function test(){
- self::call();
- static::call();
- }
- }
- class B extends A{
- public static function call(){
- echo "class B";
- }
- }
- B::test();
输出结果:
网站建设:php 后期静态绑定
- class A
- class B
通过上面的代码可以看到,在调test方法的时候,“self::”是直接调用本类的方法,static 是根据调用test方法的类来决定的“static::”的值,因此static的值只有在调用时才能确定下来,而self则是在定义是就确定下来。需要注意的是static并不限于静态方法