ID: 33282 Updated by: [EMAIL PROTECTED] Reported By: devik at cdi dot cz -Status: Open +Status: Assigned Bug Type: Feature/Change Request Operating System: Linux PHP Version: 5CVS-2005-06-13 -Assigned To: +Assigned To: dmitry
Previous Comments: ------------------------------------------------------------------------ [2005-09-02 08:33:04] devik at cdi dot cz Sorry but I still see the problem. Regarding version, I used directory name as I found nothing like 5CVS-2005-06-13 in the downloaded package. ------------------------------------------------------------------------ [2005-09-02 07:42:21] [EMAIL PROTECTED] Please try using this CVS snapshot: http://snaps.php.net/php5-latest.tar.gz For Windows: http://snaps.php.net/win32/php5-win32-latest.zip And DO NOT invent your own style for the PHP version field!! (Hint: PHP version string does NOT contain 'PHP' in it..) ------------------------------------------------------------------------ [2005-06-09 15:33:27] devik at cdi dot cz Description: ------------ This is variation on #15025. But I accept the bug is feature and I show other bug it triggers. Basic problem is that when you take ref of array item then the item will turn into reference (which will survive even array copy). I don't see it as too big problem as long as I can get rid of the reference. "unset" does the trick as expected: $r =& $A[0]; unset($r); - $A[0] is not reference any more But something like: $r =& $othervar; doesn't kill reference - you see zval with is_ref=1 and refcount=1. It prevents you from writing handy code: $c = &$c[$i] when traversing complex structures. Reproduce code: --------------- <? $a = array(1,2); $b =& $a[0]; echo "Now a[0] is reference, no problem\n"; debug_zval_dump($a); $b =& $a[1]; echo "Now a[0] has no reason to be reference any longer, but a[1] is\n"; debug_zval_dump($a); unset($b); echo "Now a[1] reference is gone too BUT WAIT, a[0] is still a ref !\n"; debug_zval_dump($a); ?> Expected result: ---------------- I expect $a without references. Actual result: -------------- $a[0] is reference with refcount(1). ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=33282&edit=1