Re: Seemingly incorrect strict standard.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux