Re: RFC proposal - Syntactic sugar for cloning

From: Date: Fri, 29 Jun 2012 15:01:27 +0000
Subject: Re: RFC proposal - Syntactic sugar for cloning
References: 1  Groups: php.internals 
Request: Send a blank email to internals+get-61042@lists.php.net to get a copy of this message
2012/6/29 Amaury Bouchard <amaury@amaury.net>: > Hello everybody, > > It's the first time I write on the internals mailing-list, so let me > introduce myself quickly. I'm a french and canadian CTO, working in Paris.. > I lead some PHP projects (mainly the Temma framework and FineFS data > replication system). > I begin to learn PHP's internal engine, backed by Pierrick Charron. > > I would like to do an RFC proposal (see below for the associated patch). > I was thinking about "what if PHP was a full-object language?". Like, for > example, how will we write the simplest code, assuming that objects are > handled using pointers since PHP 5. > > Take a look at this code: >   $a = 3; >   $b = $a; >   $a++; > > $b still contains the value 3. > > Now, if we imagine that even the integer data type is managed in an object, > the same code will produce two pointers to the same object. Thus, $b will > have the value 4, as $a. > So, in this imaginary world, we would need to do a lot of object cloning. I > wondered how this could be less painful, and I thought about the Pascal > language's affectation operator (:=). > > Then we would be able to write something like that: >   $a = 3; >   $b := $a; >   $c = $a; >   $a++; > > $a equals 4, as $c. But $b equals 3. > > Back in the real world, we are not cloning objects very often. But, like > many other syntactic sugars (as the short array syntax), I think it could > be handy in some circumstances. > > There is a patch for this evolution, written by Pierrick. > Full source code: > https://github.com/adoy/php-src/tree/amaury-clone > Code diff: > > https://github.com/adoy/php-src/commit/5107c0355c50381c7e67230cdc9f563eb3936a15º¤®Ñ(HO > ¼E(Xæ· > > > I'm looking forward to your advices. > > Cheers! > > Amaury Hi Amaury, I have to agree with Johannes here, it looks like a benefit only in a very few cases but introduces a lot of side changes like IDE syntax parsing, to cite only one. I really doubt the little benefit of such a change outperforms the extra work involved. Cheers, Patrick

« previous php.internals (#61042) next »