Edit report at https://bugs.php.net/bug.php?id=62171&edit=1
ID: 62171 Updated by: fel...@php.net Reported by: ray dot burgemeestre at gmail dot com Summary: "Nesting level too deep - recursive dependency?" in case of === Status: Open Type: Bug -Package: *Programming Data Structures +Package: Scripting Engine problem Operating System: linux PHP Version: 5.4.3 Block user comment: N Private report: N New Comment: I've committed a change that will return immediately true the comparison between same array. So, at least your '$a = array(&$a); $a === $a;' will works. Previous Comments: ------------------------------------------------------------------------ [2012-06-03 20:54:27] carloschilazo at gmail dot com I think the problem is your test script: <?php $a = array(&$a); <<<<<<< HERE $a === $a; ?> you are passing the value of $a by reference, and to invoke the value then it calls itself. remove the & and it works ------------------------------------------------------------------------ [2012-05-28 15:56:06] shiranai7 at hotmail dot com I can confirm this on Windows. I also tried more cases: For arrays: $a = array(); $a[0] = &$a; For objects: $a = new stdClass; $a->b = &$a; Results for comparisons of $a, $b Type PHP Operator Result --------------------------------------------- arrays 4.4.5 == fatal arrays 4.4.5 === fatal objects 4.4.5 == fatal objects 4.4.5 === fatal arrays 5.2.6 == fatal arrays 5.2.6 === fatal objects 5.2.6 == true objects 5.2.6 === true arrays 5.3.5 == fatal arrays 5.3.5 === fatal objects 5.3.5 == true objects 5.3.5 === true arrays 5.4.3 == fatal arrays 5.4.3 === fatal objects 5.4.3 == true objects 5.4.3 === true So this was fixed (either intentionally or along with general changes to object handling) in PHP 5 for objects but not for arrays. ------------------------------------------------------------------------ [2012-05-27 14:40:33] ray dot burgemeestre at gmail dot com Description: ------------ Is it expected behaviour that === can trigger a Nesting level too deep error? Test script: --------------- <?php $a = array(&$a); $a === $a; ?> Expected result: ---------------- I would expect $a === $a to return true. Actual result: -------------- $ php test.php PHP Fatal error: Nesting level too deep - recursive dependency? in /srv/www/htdocs/test.php on line 3 Fatal error: Nesting level too deep - recursive dependency? in /srv/www/htdocs/test.php on line 3 $ php -v PHP 5.4.3 (cli) (built: May 26 2012 22:29:08) Copyright (c) 1997-2012 The PHP Group Zend Engine v2.4.0, Copyright (c) 1998-2012 Zend Technologies ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=62171&edit=1