On Tue, 23 Mar 2004, Brad Fisher wrote:

> Rasmus Lerdorf wrote:
> 
> > I could see people doing:
> >
> >   class foo {
> >     function foo() {
> >        ...constructor stuff...
> >     }
> >     function __construct() {
> >        $this->foo();
> >     }
> >   }
> 
> I actually prefer it the other way around...  foo would call __construct in
> PHP4, and __construct would be called directly in PHP5 (with foo being
> ignored).  As I understand the docs on php.net regading PHP5, the __construct
> method has precedence over foo as a constructor.  I've also run into a case
> where a class worked fine in PHP4 and not in PHP5 because of a method
> existing with the same name as the class.  It was seen as a constructor, and
> not a method, even though it is always called statically.  

Sure, but George was asking for a case.  I think the case where you have 
some existing PHP4 code that you want to make minimal changes to but you 
might have a little bit of PHP5-specific code to run in the constructor I 
could see this sort of chaining being something people want.  I am not 
saying that is the way people should create a portable class, just that I 
could see such code popping up.  And the question was what to do about the 
old-style constructor method.  I think it would be very confusing if it 
was some sort of illegal method name that wasn't callable.

-Rasmus

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

Reply via email to