Re: [RFC] Remove PHP 4 Constructors

From: Date: Mon, 19 Jan 2015 10:39:41 +0000
Subject: Re: [RFC] Remove PHP 4 Constructors
References: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19  Groups: php.internals 
Request: Send a blank email to [email protected] to get a copy of this message
"Andrea Faulds"  wrote in message news:[email protected]...
On 19 Jan 2015, at 10:05, Tony Marston <[email protected]> wrote: "Marcio Almada" wrote in message news:CAOsHV+uhO3OVS-BEQMDjomz4SDWOYjN7ZNMCqMT8BYyNuGQVXw@mail.gmail.com...
Perhaps there should be a new rule which says that invoking a constructor with anything other than "new" or "parent::__contruct()" should be illegal, in which case this situation would generate an error.
Now this would break a lot of code that $obj->__construct(); or $this->__construct(); And I've seen a lot of it.
Surely, according to the principles of OO, a class constructor should ONLY be called when the class is constructed/instantiated into an object via the "new" verb? Google for "class constructor" and you will see all those links which say the same thing.
Inheritance is also an OO principle, and typically a derived class’s constructor will call the parent’s.
That is precisely why I said that "parent::__construct()" should still be legal.
-- Andrea Faulds http://ajf.me/
-- Tony Marston

Thread (115 messages)

« previous php.internals (#80797) next »