I agree that allowing "=& new" and disallowing "return new" by reference is
inconsistent.

But PHP4 is stable tree. We don't like different versions with different
behavior.

In PHP5 "=& new" is deprecated, so I don't see any reason to introduce
"return new" by ref in PHP5.

Dmitry.

> -----Original Message-----
> From: Matthias Pigulla [mailto:[EMAIL PROTECTED] 
> Sent: Monday, October 10, 2005 6:04 PM
> To: internals@lists.php.net
> Subject: AW: [PHP-DEV] return /* by reference */ new Foo() in PHP4
> 
> 
> 
> > Von: Derick Rethans [mailto:[EMAIL PROTECTED]
> 
> > On Sat, 8 Oct 2005, Matthias Pigulla wrote:
> > > The point is that this requires really unlogic and silly
> > > workarounds 
> > > like 'return $tmp =& new Foo()'. That forces people to 
> touch stable 
> > > codebases; I find it comprehensible that they feel this is like 
> > > passing the engine internal problems to the php coders.
> 
> > I discussed this with Dmitry today and we agree that although
> > this is strange, we will not do any modifications here as PHP 
> > 4.4. is stable and we don't want to risk breaking things.
> 
> <sarcasm-please-ignore> Yeah, keep 4.4 stable and make sure 
> it does not break things. Delegate these problems to the 
> developers of PHP code >:) </sarcasm-please-ignore>
> 
> Sorry. I know you put big effort into recovering from this 
> kind of problems and did not have fun with it either. So, 
> this is something that is too complex to handle in the 
> engine? I mean, if you can detect that what follows "return" 
> is a (php level) function call that returns a reference, why 
> can't you handle "new" the same way?
> 
> Explain someone (maybe new to PHP) why "new Foo()" creates a 
> "thing" that can be referenced, as you can assign it by ref 
> like $a =& new Foo(). But you cannot return the very same 
> referencable "thing" from a function and make the assignment 
> up one level in the call stack?
> 
> Yes I know - it's just a notice. But it hurts to add hot air (semantic
> NULLs) to large, stable codebases just to make inappropriate 
> notices go away again.
> 
> Matthias
> 
> PS. Anyone ever thought about explaining the whole 
> reference-related decisions on the upcoming International PHP 
> Conference? Maybe that could help to gain understanding as to 
> why the changes were necessary... Maybe also give a statement 
> as to possible breaks in BC with the advent of PHP6?
> 
> I have the impression that a lot of people out there are 
> frustrated and unsure as to why they should fix PHP4 code to 
> rewrite it for PHP5 and to port that to PHP6 in a few 
> years... Why not stick to <hyped-language-goes-here> right now?
> 
> -- 
> PHP Internals - PHP Runtime Development Mailing List
> To unsubscribe, visit: http://www.php.net/unsub.php
> 
> 

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

Reply via email to