ID:               31245
 Updated by:       [EMAIL PROTECTED]
 Reported By:      rhm31 at cam dot ac dot uk
-Status:           Open
+Status:           Bogus
-Bug Type:         Zend Engine 2 problem
+Bug Type:         Scripting Engine problem
 Operating System: FreeBSD
 PHP Version:      4.3.9
 New Comment:

Yeah, don't do that. You can crash PHP with other infinite recursive
things too. This won't change.



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

[2004-12-22 15:41:02] rhm31 at cam dot ac dot uk

In the example code, the first $obj=&new A; is not needed, sorry.

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

[2004-12-22 15:39:24] rhm31 at cam dot ac dot uk

Description:
------------
Assigning an global object to be a reference of itself causes the
object to point to $GLOBALS, but only when read from $GLOBALS.

This shows up as the *RECURSION* in the acutal result below.
Note also that Win32 works fine but FreeBSD gives this problem.

Reproduce code:
---------------
<?php

class A
{
}

$obj=&new A;

function &GetA()
{
        global $obj;
        return $obj;
}

$obj=&new A;
$obj=&GetA();

echo("<PRE>");
var_dump($obj);
print_r($GLOBALS);
echo("</PRE>");
?>

Expected result:
----------------
object(a)(0) {
}
Array
(
...
    [GLOBALS] => Array
 *RECURSION*
    [obj] => a Object
        (
        )

)

//Note this result is obtained in PHP 4.3.9 on Win32

Actual result:
--------------
object(a)(0) {
}
Array
(
...
    [GLOBALS] => Array
 *RECURSION*
    [obj] => Array
 *RECURSION*
)
//Note this result is obtained in PHP 4.3.9 on FreeBSD


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


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

Reply via email to