Bug #71926 [NEW]: "undefined offset" raised for existing offset

From: Date: Wed, 30 Mar 2016 20:22:47 +0000
Subject: Bug #71926 [NEW]: "undefined offset" raised for existing offset
Groups: php.bugs 
Request: Send a blank email to php-bugs+get-200246@lists.php.net to get a copy of this message
From: rvanvelzen at experty dot com Operating system: Debian 8.3 PHP version: 7.0.4 Package: Scripting Engine problem Bug Type: Bug Bug description:"undefined offset" raised for existing offset Description: ------------ We're currently upgrading to PHP7, and noticed a notice which wasn't present in PHP5. In PHP5 there is a warning regarding modification of the array, due to the reference to $sortingData. In PHP7 however, an offset is missing. Strangely, when var_dump'ing the indexes of the array, the 0 index is present. Test script: --------------- <?php ini_set('display_errors', true); error_reporting(E_ALL); $sortingData = [ 0 => 10, 1 => 12, // This key is magic - anything >= 8 (or a non-integer key) makes this script produce the E_NOTICE 8 => 11, ]; uksort($sortingData, function ($a, $b) use (&$sortingData) { return $sortingData[$a] > $sortingData[$b] ? -1 : 1; }); var_dump($sortingData); Expected result: ---------------- Warning: uksort(): Array was modified by the user comparison function in /home/richard/break.php on line 15 array(3) { [1]=> int(12) [8]=> int(11) [0]=> int(10) } Actual result: -------------- Notice: Undefined offset: 0 in /home/richard/break.php on line 14 array(3) { [1]=> int(12) [8]=> int(11) [0]=> int(10) } -- Edit bug report at https://bugs.php.net/bug.php?id=71926&edit=1 -- Try a snapshot (PHP 5.4): https://bugs.php.net/fix.php?id=71926&r=trysnapshot54 Try a snapshot (PHP 5.5): https://bugs.php.net/fix.php?id=71926&r=trysnapshot55 Try a snapshot (trunk): https://bugs.php.net/fix.php?id=71926&r=trysnapshottrunk Fixed in SVN: https://bugs.php.net/fix.php?id=71926&r=fixed Fixed in release: https://bugs.php.net/fix.php?id=71926&r=alreadyfixed Need backtrace: https://bugs.php.net/fix.php?id=71926&r=needtrace Need Reproduce Script: https://bugs.php.net/fix.php?id=71926&r=needscript Try newer version: https://bugs.php.net/fix.php?id=71926&r=oldversion Not developer issue: https://bugs.php.net/fix.php?id=71926&r=support Expected behavior: https://bugs.php.net/fix.php?id=71926&r=notwrong Not enough info: https://bugs.php.net/fix.php?id=71926&r=notenoughinfo Submitted twice: https://bugs.php.net/fix.php?id=71926&r=submittedtwice register_globals: https://bugs.php.net/fix.php?id=71926&r=globals PHP 4 support discontinued: https://bugs.php.net/fix.php?id=71926&r=php4 Daylight Savings: https://bugs.php.net/fix.php?id=71926&r=dst IIS Stability: https://bugs.php.net/fix.php?id=71926&r=isapi Install GNU Sed: https://bugs.php.net/fix.php?id=71926&r=gnused Floating point limitations: https://bugs.php.net/fix.php?id=71926&r=float No Zend Extensions: https://bugs.php.net/fix.php?id=71926&r=nozend MySQL Configuration Error: https://bugs.php.net/fix.php?id=71926&r=mysqlcfg

« previous php.bugs (#200246) next »