<?php
abstract class a {
abstract protected static function getClass();
public function concreteMethod() {
return static::getClass();
}
}
class b extends a {
protected static function getClass() {
return __CLASS__;
}
}
class c extends a {
protected static function getClass() {
return __CLASS__;
}
}
$b = new b();
echo $b->concreteMethod()."\n";
$c = new c();
echo $c->concreteMethod()."\n";
Strict Standards: Static function a::getClass() should not be abstract in /in/5YFJb on line 5
b
c
Output for 5.2.0 - 5.2.17
Strict Standards: Static function a::getClass() should not be abstract in /in/5YFJb on line 5
Parse error: syntax error, unexpected T_STATIC in /in/5YFJb on line 8
Process exited with code 255.
Output for 5.1.0 - 5.1.6
Parse error: syntax error, unexpected T_STATIC in /in/5YFJb on line 8
Process exited with code 255.
Output for 5.0.0 - 5.0.5
Parse error: parse error, unexpected T_STATIC in /in/5YFJb on line 8
Process exited with code 255.
Output for 4.4.2 - 4.4.9
Parse error: syntax error, unexpected T_CLASS in /in/5YFJb on line 3
Process exited with code 255.