> I don't see why you can't specify that a class definition must have a > constructor. Obviously the constructor is not for the > interface itself.
Ok, that is, having __construct in the interface asserts that everything you get passed (as an implementation of the interface) has been constructed by a constructor that has a certain signature? :--/ Of course it also doesn't make sense to call __construct on the implementation passed along. Luckily this is nothing I'm forced to write in my code ;). I only wanted to utter I have a Bad Feeling(TM) if you invest time and effort to make stuff like this work if the result is something that seems to make no sense [to me only?]. And once you allow it, be sure ppl out there use & abuse it and will complain should you ever have to remove it again. .. I'm just trying to make up a scenario where the above might make sense - it could be where you have something like a factory method. It has a type hint on it's argument to make sure what gets passed in implements a certain interface. That interface defines the signature of __construct, so the method can construct instances of the "thing" - only knowing that the instances constructed will implement the interface (?), but not knowing their implementation. But how should it construct instances? new INameOfTheInterface()? And besides that, problem is again that the "thing" passed in would have to be something representing a class, and not an instance of the class itself. You could always (gut feeling) re-design this to work "the usual way" by passing in something representing a class and providing behaviour to construct instances. I hope Andi backs me :) -mp. -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php