Edit report at https://bugs.php.net/bug.php?id=30471&edit=1

 ID:                 30471
 Comment by:         jodybrabec at gmail dot com
 Reported by:        none at example dot com
 Summary:            var_export: Nesting level too deep - recursive
                     dependency?
 Status:             Not a bug
 Type:               Bug
 Package:            PHP options/info functions
 Operating System:   Linux
 PHP Version:        5.0.2
 Assigned To:        derick
 Block user comment: N
 Private report:     N

 New Comment:

WORKAROUND:
ob_start();
var_dump($GLOBALS);
$dataDump = ob_get_clean();


Previous Comments:
------------------------------------------------------------------------
[2011-03-26 15:21:12] ricki at rocker dot com

I don't believe this is a bug as the purposes of var_dump and var_export are 
entirely different:

var_dump - simply dumps a readable form 
var_export - exports valid PHP! This code is actually usable within an 
application.

var_dump therefore can "manage" the recursive nature of global by simply doing 
the following in the output
&array(15) {
        ["GLOBALS"]=>
        *RECURSION*

var_export on the other hand clearly can't take the same approach to recursion 
if the generated PHP output is to work as intended by the application designer. 
- it can only (and should only) fail.

hope this is useful to someone.

------------------------------------------------------------------------
[2010-10-28 20:49:29] hendy at soluvas dot com

This bug is VALID!

The following code works:

var_dump($GLOBALS);

Therefore the dumping algorithm is inconsistent. var_export() should just use 
the same algorithm as var_dump().

------------------------------------------------------------------------
[2010-06-27 05:55:26] jdickey at seven-sigma dot com

Derick, I'd suggest that that "expected behavior" itself is a design flaw in 
the 
PHP interpreter. The solutions I can think of right off would be ugly, granted 
(special-case check for global-variable accessor to detect whether it's 
attempting 
to recurse as an effect of debug_backtrace() and, if so, throw an exception 
that 
can then be caught by d_bt); I find it really hard to believe that such a 
heavily-
used software platform with such a large, competent company and community 
behind 
it can't come up with a better solution.

Marking this bug as 'bogus' merely insults your developer customers and 
encourages 
them to go find a real language instead.

------------------------------------------------------------------------
[2004-11-15 20:19:24] der...@php.net

There is no way to return a correct output in this case, so this is not a bug 
but expected behavior.

------------------------------------------------------------------------
[2004-10-18 17:33:05] none at example dot com

Description:
------------
doing var_export( $GLOBALS, true ) there is an error 
like in older versions of php4:

Nesting level too deep - recursive dependency?

Of course it is easy to do a workaround, but maybe it 
would be nice to fix it. Theres a lot of discussion 
araound this bug in some communities for older php 
versions. Maybe it is me being in error or maybe this is 
just a feature and not a bug? In this case sorry for 
disturbing...

Thanks a lot for all your work!


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

$outText = var_export( $GLOBALS, true );

?>

Expected result:
----------------
I would expect to get var_export in $outText

Actual result:
--------------
array (  'GLOBALS' => array (  'GLOBALS' => array (  
'GLOBALS' => array ( 
Fatal error: Nesting level too deep - recursive 
dependency?


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



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

Reply via email to