ID:               16614
 Updated by:       [EMAIL PROTECTED]
 Reported By:      [EMAIL PROTECTED]
-Status:           Open
+Status:           Closed
 Bug Type:         Class/Object related
 Operating System: Windows 2000, Windows XP
 PHP Version:      4.1.2
 New Comment:

Variables imported with global into the local function scope are
actually references and therefore can't be assigned to another
reference. $GLOBAL is a good workaround for this

However this isn't necessary for ZE2 because you don't need to pass
objects by reference anymore (there's no shallowing coping going on
anymore).


Previous Comments:
------------------------------------------------------------------------

[2002-04-15 10:08:21] [EMAIL PROTECTED]

This error is reproducable for PHP 4.2.0rc1:

First version ($GLOBALS["obj"]=&$ref;) gives:

object(test)(0) {
}

Second version ($obj=&$ref;) gives:

NULL

------------------------------------------------------------------------

[2002-04-15 05:53:47] [EMAIL PROTECTED]

There is the line marked with '#*' in the following script. One line up
you will find other line that should make the exactly same action (I
think). Try to comment this line and uncomment line with '#*'. The
output will differ. Why?

--- SCRIPT: START ---
<PRE><?php

class test {
        function test() {
                extfunc($this);
        }
}
#___________________________________________________________
function extfunc(&$ref) {
global $obj;
        $GLOBALS["obj"]=&$ref; # This is the same as '$obj=&$ref;'. Isn't it?
        #* $obj=&$ref;
}

#===========================================================
$test=new test();
var_dump($obj);

?></PRE>
--- SCRIPT: END ---

------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=16614&edit=1

Reply via email to