#35063 [Opn->Asn]: key() returns wrong value in function with array passed by reference

From: Date: Wed, 02 Nov 2005 09:33:24 +0000
Subject: #35063 [Opn->Asn]: key() returns wrong value in function with array passed by reference
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-87391@lists.php.net to get a copy of this message
ID: 35063 Updated by: derick@php.net Reported By: dave dot newman at codegate dot co dot uk -Status: Open +Status: Assigned Bug Type: Arrays related Operating System: Windows XP PHP Version: 4CVS-2005-11-02 (CVS) -Assigned To: +Assigned To: ilia Previous Comments: ------------------------------------------------------------------------ [2005-11-02 10:20:40] dave dot newman at codegate dot co dot uk Description: ------------ I call a function with a reference to an array and an object. I then add the object to the end of the array. When I then use end() and key() to get the key of the the object just added to the array key() always returns 0 rather than the actual key value. Reproduce code: --------------- function addToArray(&$array, $obj) { $array[] = $obj; print_r($array); end($array); print 'last key = '.key($array).'<hr/>'; } print '<pre>'; $array = array(); for ($a=0; $a<5; $a++) addToArray($array, array($a=>$a)); print '</pre>'; Expected result: ---------------- I expect it to print to the screen an array dump followed by the last key value in the array 5 times (seperated by <hr>). I add an object to the array each time, so the last key value displayed should go from 0 to 4. Actual result: -------------- the last key value is always 0 rather than the actual last key value. ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=35063&edit=1

« previous php.bugs (#87391) next »