self::af(); static::af(); } } class b extends a { public static function af() { echo 'in b:af<br/>'; } } class c extends b { public static function af() { echo 'in c:af<br/>'; } } c::ac(); /* ========都有af in a:af in c:af ========去掉b中af in a:af in c:af ========去掉c中af in a:af in b:af 可见,static的后期绑定是根据调用顺序有关。从最开始的后代类内找调用函数,再向祖先类内找,直至找到。 */