Hello,
Functions that convert from one number base to another should only accept
characters valid in that number base. E.g. only 0-9, a-f are allowed for
hexadecimal, so what should hexdec('z') do?
In the past, such characters were silently ignored. Since PHP 7.4 a deprecation
notice would be generated, as a result of this RFC:
https://wiki.php.net/rfc/base_convert_improvements. That RFC also proposed
throwing an exception as of PHP 8.0, but that was never implemented. I propose
to throw a ValueError for invalid characters starting in PHP 8.6. I added this
to the Grouped ValueError Conversions for PHP 8.6 RFC:
https://wiki.php.net/rfc/php86_valueerror_conversions#throw_error_for_invalid_characters_for_number_base
This applies to bindec, octdec, hexdec, and base_convert.
Regards,
Sjoerd Langkemper