On Apr 19, 2004, at 2:49 PM, Marcus Boerger wrote:
Hello Zeev,
Monday, April 19, 2004, 12:14:40 PM, you wrote:
At 13:04 19/04/2004, Andi Gutmans wrote:Hey,
I just wanted to note the fact that I disagree with this.
In a perfect world, I would go with an E_COMPILE_ERROR in all situations;
when inheriting regular classes (w/o abstract methods), abstract methods
and interfaces. That is what the academic part of me feels but knows can't
be done.
As this would break BC too much, I agree that inheriting from regular
classes should not lead to an error. I believe that for consistency sake
interfaces and abstract classes should behave the same as regular classes,
thus, if regular classes don't cause an error, the former also shouldn't.
Just to clarify a bit on why I think that we should differentiate:
1. First of all, I agree that in a perfect world we should go with
E_COMPILE_ERROR for everything. Maybe now that's constructors are out of
the picture, people will be more receptive to the idea - if we can go down
that route, that option clearly gets my vote.
+1
2. If going for E_COMPILE_ERROR in all situations is not an option, then I
do see a significant difference between interface/abstract methods, and
real methods, when it comes to inheriting from them. The whole
interface/abstract/class type hints mechanism was added for the sole reason
of enforcing prototypes, and effectively, it is pretty much useless the way
things are now.
repeat useless.
yep.
To make it clear, my vote still goes for option #1, if people feel better
about it now...
fellBetter++
I also think this is the way to go.
George
-- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php