Copied from wiki.php.net, last synchronized Oct 16, 2026 17:46 UTC
PHP's extension-query functions handle extension names inconsistently. extension_loaded(), get_extension_funcs(), and phpversion() already accept case-insensitive names, while ini_get_all() requires lowercase names:
<?php
extension_loaded('Pcre'); // true
get_extension_funcs('Pcre'); // array of function names
phpversion('Pcre'); // extension version string
ini_get_all('Pcre'); // E_WARNING, then false
?>
This RFC proposes making ini_get_all() case-insensitive so the same extension name can be used consistently across all four functions, without callers needing to normalize it for one particular API.
Resolve the $extension argument using ASCII case-insensitive matching, independently of the current locale. This applies to both values of $details (the second parameter).
<?php
// PHP 8.7:
var_dump(ini_get_all('pcre') === ini_get_all('Pcre')); // bool(true)
var_dump(ini_get_all('pcre', false) === ini_get_all('PCRE', false)); // bool(true)
?>
Names differing only in capitalization from a loaded extension now succeed instead of raising a warning and returning false. Code relying on that failure will observe different behavior.
Existing successful calls are unaffected.
PHP 8.7
The ini_get_all function will be more consistent with the rest of the functions in the php core concerning extension's name when it comes to case-sensitiveness.
A two-thirds majority is required. Voting has not started; the closing timestamp will be added when scheduled.
Vote: Implement case-insensitive extension names in ini_get_all() as outlined in the RFC? — Yes: 0 · No: 0 · Abstain: 0 (closed)
TBD.