Re: Re: parent:: forwarding

From: Date: Tue, 08 Jul 2008 12:32:58 +0000
Subject: Re: Re: parent:: forwarding
References: 1 2 3  Groups: php.internals 
Request: Send a blank email to internals+get-38849@lists.php.net to get a copy of this message
"Class names" are already context-dependent. <?php class Foo { function test() { var_dump($this); } } class Bar extends Foo { function test() { Foo::test(); /* this is a "dynamic" method call */ } } $x = new Bar(); $x->test(); ?> Thanks. Dmitry. Alexey Zakhlestin wrote: > On Tue, Jul 8, 2008 at 3:39 PM, Dmitry Stogov <dmitry@zend.com> wrote: >> I took a look into the patch and I don't like it all. >> >> At first, I don't see any consistency there. >> Why parent:: does forwarding but self::, static:: and "class names" don't? > > "class names" don't because, people expect their results to be > context-independent. It is just a call of "some method" on "some > class". > > "parent", on the other hand, implies "inheritance". self and static > should do forwarding too, I think, because they are context-dependent > by design. forwardind is expected here > >> At second, it's too complicated. >> >> I would propose more consistent (from my point of view) and simpler patch. >> >> Each call to static method of parent class (it doesn't mater if it was >> done using parent:: or something else) assumes forwarding of called context. >> >> Thanks. Dmitry. >> >> Etienne Kneuss wrote: >>> Hi, >>> >>> The patch was made initially by Mike Lively, I adapted it and removed >>> forward_static_call >>> >>> >>> http://patches.colder.ch/Zend/lsb_parent_forwarding_53.patch?markup >>> >>> http://patches.colder.ch/Zend/lsb_parent_forwarding_HEAD.patch?markup >>> >>> They should merge without trouble. > > >

« previous php.internals (#38849) next »