Re: RE: [ZEND-ENGINE-CVS] cvs: ZendEngine2(PHP_5_2) / zend_compile.c
| From: | Jasper Bryant-Greene | Date: | Fri, 20 Oct 2006 08:55:21 +0000 |
| Subject: | Re: RE: [ZEND-ENGINE-CVS] cvs: ZendEngine2(PHP_5_2) / zend_compile.c | ||
| References: | 1 | Groups: | php.internals php.zend-engine.cvs |
| Request: | Send a blank email to php-zend-engine-cvs+get-5348@lists.php.net to get a copy of this message | ||
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512
The reason 'abstract static' makes no sense is because static methods
are bound to the class they are defined in. Inheritance rules do not apply.
Therefore a static method that is defined abstract would theoretically
never be able to be implemented. A method defined in a derived class
with the same name would not be implementing it but would simply be a
static method on another class that happens to have the same name.
I really don't mind if this is allowed or not, but I feel that while one
of the niceties of PHP is it's flexibility, OO theory still needs some
representation.
Jasper
Andi Gutmans wrote:
> Seems like I missed that whole thread.
> I don't quite understand what we have to gain from dissallowing overriding
> static methods and/or abstract static methods. It's not really in the PHP
> spirit.
> Making it E_STRICT doesn't solve the situation because it will tell people
> it's not an ok thing to do, and I'm not quite sure that's what we want.
> Can we revert to 5.1 status quo and get 5.2 shipped and discuss this?
> Shipping it like this and then reverting later will just create a huge
> headache and will confuse our user-base.
>
> Btw, I don't quite understand why it doesn't make sense? Maybe people are
> not used to it from other OO langauges but the "no sense" argument isn't
> very convincing. I actually see it as a way to enforce a contract or
> structure. Some might not agree with it but I don't see how it violates any
> rules of the universe...
> Andi
>
>> -----Original Message-----
>> From: Derick Rethans [mailto:derick@php.net]
>> Sent: Friday, October 20, 2006 1:11 AM
>> To: Andi Gutmans
>> Cc: 'Dmitry Stogov'; 'Ilia Alshanetsky'; zend-engine-cvs@lists.php.net
>> Subject: RE: [ZEND-ENGINE-CVS] cvs: ZendEngine2(PHP_5_2) /
>> zend_compile.c
>>
>> On Fri, 20 Oct 2006, Andi Gutmans wrote:
>>
>>> I cant remember the discussion we had in the past.
>>> Why is it important to not allow overriding of static functions? We
>>> can/should probably enforce the same contract of course.
>>
>> http://marc.theaimsgroup.com/?t=116129338300001&r=1&w=2
>> and
>>
>> http://marc.theaimsgroup.com/?t=114734986200004&r=1&w=2
>>
>> regards,
>> Derick
>>
>> --
>> Zend Engine CVS Mailing List (http://cvs.php.net/) To
>> unsubscribe, visit: http://www.php.net/unsub.php
>>
>> --
>> No virus found in this incoming message.
>> Checked by AVG Free Edition.
>>
>>
>>
>
- --
Jasper Bryant-Greene
Director
Album Limited
jasper@albumltd.co.nz
+64 21 708 334 / 0800 425 286
http://www.albumltd.co.nz/
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5-ecc0.1.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iFcDBQFFOI75nqZ4vwo6v1gRCnIAAP9hoeS+gwOU7jAwddWbCKfkoCGo+b5SgJ9L
evbzp9A7GAEAiQCXK/m56Wo3MvqC1f+uCkp8llFl+Q0/OyxXTZwJwZ0=
=5KCj
-----END PGP SIGNATURE-----