Re: [RFC] Remove PHP 4 Constructors

From: Date: Tue, 25 Nov 2014 17:38:51 +0000
Subject: Re: [RFC] Remove PHP 4 Constructors
References: 1 2 3 4 5 6 7 8 9 10 11 12  Groups: php.internals 
Request: Send a blank email to [email protected] to get a copy of this message
On Fri, Nov 21, 2014 at 11:20 AM, Levi Morrison <[email protected]> wrote:
>> BTW, old constructor has problem with traits (is this mentioned already?)
>>
>> http://3v4l.org/KZKXo
>>
>> I suppose nobody is using this side effect in production code, but
>> there would be number of users who are confused by this behavior.
>
> If I remember the source code correctly, this should be considered a
> bug. I will definitely look into this, regardless of the outcome of
> this RFC.

It turns out I was incorrect; based on the code and the phpt tests I
would not say this is a bug.

However, traits do check for "colliding constructors" and emit a fatal
error when having both a method named after the class and a
__construct method: http://3v4l.org/YHAtA. Note that it
doesn't matter
who declares the old and new style constructors:
http://3v4l.org/ZOeoY. When defining only the same style of
constructor in both there is no error: http://3v4l.org/H1jG1 and
http://3v4l.org/m5D7p.

I will lift this restriction in the RFC for both PHP 5.7 and 7 and
update the implementation when I can.


Thread (115 messages)

« previous php.internals (#79171) next »