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