Jasper Bryant-Greene wrote:
> adding parent::__construct() in the constructors of both Parent and
> Child should do what you want.

not only that but you 'should' _always_ really be calling the complete
constructor chain (e.g. Gparent < Parent < Child) according to "OO theory" -
the thought being that the construction phase is critical to instantiating
a class instance, a subclass should be able to rely on the fact that the 
baseclass
definition is completely/correct instantiated when it is created.

sounds to me that either your class hierarchy is 'wrong' or there is
some code in the Parent ctor that should belopng in some optional (protected?)
setup/utility function. just a thought.


> 
> Jasper
> 
> Evert | Rooftop wrote:
>> Hi List,
>>
>> Sorry if this is the wrong list for this kind of stuff.. I'd be happy to
>> re-post this to the users mailing list.
>>
>> With the recent updates that will raise E_STRICT on static calls that
>> are non static, how do we properly do the following..
>>
>> I have a class named 'GrandParent' a class named 'Parent' and a class
>> named 'Child'
>>
>> GrandParent has a constructor, Parent overrides it and Child does too..
>> What if I want to call GrandParent's constructor from the child?
>>
>> Most languages allow this through casting the class into the ancestor
>> and call then call the method, but I can't do this with PHP, or can I ?
>> The other solution (right now) would be GrandParent::__construct(), but
>> this is not OOP anymore.. So it seems kind of weird that we get limited
>> in functionality, for OOP-ness, but not adding the functionality to
>> solve common design problems that we're raised by introducing this..
>>
>> Will we get casting in the future?
>>
>> Evert
>>
> 

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to