#24477 [Com]: Problem returning new class by ref from function
ID: 24477
Comment by: jsemczyk at elv dot enic dot fr
Reported By: karl at karlaustin dot com
Status: Feedback
Bug Type: Zend Engine 2 problem
Operating System: RH7.3
PHP Version: 5CVS-2003-07-03 (dev)
New Comment:
I think it is the same problem as here :
http://bugs.php.net/bug.php?id=24687
As zeev said, in the current zend2 you can't connect to a returned
value.
But it is really needed to unreference returned value, and you can do
it in most object oriented languages.
Here, we break a compatibilty with PEAR, Horde (and other projects I
guess). For now, I am waiting for a new version of PEAR, and then
Horde.
Previous Comments:
------------------------------------------------------------------------
[2003-07-27 07:16:27] stas@php.net
What is the meaning of returning result of new by reference?
------------------------------------------------------------------------
[2003-07-09 04:12:56] jsemczyk at elv dot enic dot fr
I have the same error, it seems like it comes from a function that must
return a reference, but objects are already references.
this doesn't work, but worked before beta1, I tried PEAR before beta1
and it uses lots of this :
function &myFunc()
{
return new MyClass();
}
This works fine :
function myFunc()
{
return new MyClass();
}
I don't understand why it comes from return (new Class()); cause it
doesn't work.
------------------------------------------------------------------------
[2003-07-03 07:09:44] karl at karlaustin dot com
Well from the text of that item it would suggest that doing:
return new object();
is fine, but:
return (new object());
is not fine, that's how it would seem to me as an end user.
PEAR is ridled with returns like the one I list (Although IMHO it
should have only one return and assign return values to a variable then
return at the end, but that's another story).
------------------------------------------------------------------------
[2003-07-03 06:17:54] derick@php.net
Cause:
http://news.php.net/article.php?group=php.zend-engine.cvs&article=1432
I wonder if we really should break BC here...
------------------------------------------------------------------------
[2003-07-03 06:13:42] karl at karlaustin dot com
Description:
------------
Fatal error: Only variables or references can be returned by reference
in /usr/local/php5/lib/php/DB/common.php on line 737
If seems that doing:
return new DB_result($this, $result);
in a function results in the above error, but:
$_tmp = new DB_result($this, $result);
return $_tmp;
Is fine.
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=24477&edit=1
Thread (7 messages)