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