[PHP-BUG] Bug #71178 [NEW]: preg_replace: non-zero array keys for pattern/replace do not work and break BC
[email protected] ("pglewis13 at gmail dot com")
| Newsgroups | php.bugs |
|---|---|
| Message-ID | <[email protected]> |
From: pglewis13 at gmail dot com Operating system: Linux PHP version: 7.0.1 Package: PCRE related Bug Type: Bug Bug description:preg_replace: non-zero array keys for pattern/replace do not work and break BC Description: ------------ If pattern and replace are single element arrays and the keys are non-zero integers, then preg_replace may modify the replace parameter. In the case of the test script, the replace parameter has an empty string inserted as the 0th entry after the call to preg_replace. I have not tested string keys or with more than one array element. Test script: --------------- https://gist.github.com/pglewis/42c7a6e3da5e465793e0 Expected result: ---------------- I could find no caveats regarding keys in the documentation, so the expectation is that the replace parameter should not be modified in any way by a call to preg_replace. Actual result: -------------- An empty string is inserted into the replace parameter as an extra array element, resulting in an unexpected result and breaking backward compatibility. -- Edit bug report at https://bugs.php.net/bug.php?id=71178&edit=1 -- Try a snapshot (PHP 5.4): https://bugs.php.net/fix.php?id=71178&r=trysnapshot54 Try a snapshot (PHP 5.5): https://bugs.php.net/fix.php?id=71178&r=trysnapshot55 Try a snapshot (trunk): https://bugs.php.net/fix.php?id=71178&r=trysnapshottrunk Fixed in SVN: https://bugs.php.net/fix.php?id=71178&r=fixed Fixed in release: https://bugs.php.net/fix.php?id=71178&r=alreadyfixed Need backtrace: https://bugs.php.net/fix.php?id=71178&r=needtrace Need Reproduce Script: https://bugs.php.net/fix.php?id=71178&r=needscript Try newer version: https://bugs.php.net/fix.php?id=71178&r=oldversion Not developer issue: https://bugs.php.net/fix.php?id=71178&r=support Expected behavior: https://bugs.php.net/fix.php?id=71178&r=notwrong Not enough info: https://bugs.php.net/fix.php?id=71178&r=notenoughinfo Submitted twice: https://bugs.php.net/fix.php?id=71178&r=submittedtwice register_globals: https://bugs.php.net/fix.php?id=71178&r=globals PHP 4 support discontinued: https://bugs.php.net/fix.php?id=71178&r=php4 Daylight Savings: https://bugs.php.net/fix.php?id=71178&r=dst IIS Stability: https://bugs.php.net/fix.php?id=71178&r=isapi Install GNU Sed: https://bugs.php.net/fix.php?id=71178&r=gnused Floating point limitations: https://bugs.php.net/fix.php?id=71178&r=float No Zend Extensions: https://bugs.php.net/fix.php?id=71178&r=nozend MySQL Configuration Error: https://bugs.php.net/fix.php?id=71178&r=mysqlcfg