From: Operating system: Irrelevant PHP version: 5.3.10 Package: Strings related Bug Type: Bug Bug description:htmlspecialchars() optional parameters and null
Description: ------------ One would expect that when the optional $flags of htmlspecialchars() is set to null, the behavior is the same as when the parameter is not set, so the default value is used. This would be useful when someone wants to set another optional parameter. For instance, to set the $double_encode parameter: htmlspecialchars("some text", null, null, false); Comment: This is a bug similar to #40531 "mb_substr optional parameters". Other functions probably behave the same. The difficulty is that zend_parse_argument() cannot deal with the complex type "long or null", so extra parsing and validating is needed. First tested on PHP 5.3.10, but same problem on 5.4.0. Test script: --------------- echo htmlspecialchars("l'été \"dernier\"\n"); echo htmlspecialchars("l'été \"dernier\"\n", null); echo htmlspecialchars("l'été \"dernier\"\n", 0); Expected result: ---------------- l'été "dernier" l'été "dernier" l'été "dernier" Actual result: -------------- l'été "dernier" l'été "dernier" l'été "dernier" -- Edit bug report at https://bugs.php.net/bug.php?id=61498&edit=1 -- Try a snapshot (PHP 5.4): https://bugs.php.net/fix.php?id=61498&r=trysnapshot54 Try a snapshot (PHP 5.3): https://bugs.php.net/fix.php?id=61498&r=trysnapshot53 Try a snapshot (trunk): https://bugs.php.net/fix.php?id=61498&r=trysnapshottrunk Fixed in SVN: https://bugs.php.net/fix.php?id=61498&r=fixed Fixed in SVN and need be documented: https://bugs.php.net/fix.php?id=61498&r=needdocs Fixed in release: https://bugs.php.net/fix.php?id=61498&r=alreadyfixed Need backtrace: https://bugs.php.net/fix.php?id=61498&r=needtrace Need Reproduce Script: https://bugs.php.net/fix.php?id=61498&r=needscript Try newer version: https://bugs.php.net/fix.php?id=61498&r=oldversion Not developer issue: https://bugs.php.net/fix.php?id=61498&r=support Expected behavior: https://bugs.php.net/fix.php?id=61498&r=notwrong Not enough info: https://bugs.php.net/fix.php?id=61498&r=notenoughinfo Submitted twice: https://bugs.php.net/fix.php?id=61498&r=submittedtwice register_globals: https://bugs.php.net/fix.php?id=61498&r=globals PHP 4 support discontinued: https://bugs.php.net/fix.php?id=61498&r=php4 Daylight Savings: https://bugs.php.net/fix.php?id=61498&r=dst IIS Stability: https://bugs.php.net/fix.php?id=61498&r=isapi Install GNU Sed: https://bugs.php.net/fix.php?id=61498&r=gnused Floating point limitations: https://bugs.php.net/fix.php?id=61498&r=float No Zend Extensions: https://bugs.php.net/fix.php?id=61498&r=nozend MySQL Configuration Error: https://bugs.php.net/fix.php?id=61498&r=mysqlcfg