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

Reply via email to