PM>> <?php
PM>> class Root {
PM>> class Nested {
PM>> function Nested() {
PM>> print("Root::Nested constructed\n");
PM>> }
PM>> }
PM>> }
PM>>
PM>> class Child extends Root {
PM>> class Nested {
PM>> function Nested() {
PM>> parent::Nested();
PM>> print("Child::Nested constructed\n");
PM>> }
PM>> }
PM>> }
PM>>
PM>> $object = new Child::Nested;
PM>> ?>
PM>>
PM>> If you attempt to execute this script with the PHP 4.3.0 ZE2 alphas (either
PM>> 1 or 2), you'll get a fatal error specifying that "Cannot fetch parent:: as
PM>> current class scope has no parent", referring to the Child::Nested
PM>> constructor and the "parent::Nested();" line. Is the outer classes just
But the Child::Nested class doesn't have parent indeed! Child has parent,
but Child::Nested doesn't.
PM>> meant to be for namespacing purposes? Any class deriving from the
PM>> parent will not have its nested classes derive from the parents
PM>> nested classes. So then why can't nested classes be extended from
PM>> anything? Just some symbolism: P is parent, defines P.n is nested, D
It can. You can use "extends" in nested class, AFAIK, just as you do in
plain one - just interitance is not inherited (brrr... what a messy
phrase) by the nested classes.
PM>> extends P, defines D.n nested, yet D.n has no relation to P.n and is
PM>> not allowed to extend it explicitly (wouldn't it be implicit, with
You definitely can do it explicitly - by saying "extends Root::Nested" in
Child::Nested.
--
Stanislav Malyshev, Zend Products Engineer
[EMAIL PROTECTED] http://www.zend.com/ +972-3-6139665 ext.109
--
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, visit: http://www.php.net/unsub.php