Aha! Don't make it abstract in my base class, but I can throw an exception (perfectly reasonable for me as the called class should implement the method). On 3 June 2013 18:36, Matijn Woudt <tijnema@xxxxxxxxx> wrote: > > On Mon, Jun 3, 2013 at 7:24 PM, Richard Quadling <rquadling@xxxxxxxxx>wrote: > >> Hi. >> >> I've got an abstract class which requires one of the concrete descendants >> to implement a static function. >> >> The base class will call it using static:: rather than self::. >> >> But I'm getting an error at runtime. >> >> Static function should not be abstract. >> >> It doesn't SEEM right to inhibit this. >> >> Am I missing something? >> >> I'm on PHP 5.4.15 (Mac and Centos). >> >> > Hi Richard, > > This change is done on purpose. > From the PHP manual: > "Dropped abstract static class functions. Due to an oversight, PHP 5.0.x > and 5.1.x allowed abstract static functions in classes. As of PHP 5.2.x, > only interfaces can have them." > > I believe you could make yourself in trouble when using it, and that's why > there is a warning with strict. > > It does make sense, because overloading is something that works on > classes, and static functions do not reference classes. > > - Matijn > -- Richard Quadling Twitter : @RQuadling EE : http://e-e.com/M_248814.html Zend : http://bit.ly/9O8vFY