<?php
interface Foo {
public static function a();
public static function b($arg);
}
abstract class Base implements Foo {
public static function a() {
return __FUNCTION__ . '(' . __LINE__ . ')';
}
}
class Concrete extends Base {
public static function b($arg) {
return array(__FUNCTION__, __LINE__, $arg);
}
}
var_dump(Concrete::a()); // works
var_dump(Base::a()); // works
var_dump(Concrete::b(__LINE__)); // works
var_dump(Base::b(__LINE__)); // can't call an abstract method