Promote base_convert "invalid base" errors to ValueError

This commit is contained in:
Nikita Popov 2019-10-29 13:12:37 +01:00
parent 26327bcd3b
commit c43179fb6b
2 changed files with 17 additions and 13 deletions

View File

@ -1098,12 +1098,12 @@ PHP_FUNCTION(base_convert)
}
if (frombase < 2 || frombase > 36) {
php_error_docref(NULL, E_WARNING, "Invalid `from base' (" ZEND_LONG_FMT ")", frombase);
RETURN_FALSE;
zend_value_error("Invalid `from base' (" ZEND_LONG_FMT ")", frombase);
return;
}
if (tobase < 2 || tobase > 36) {
php_error_docref(NULL, E_WARNING, "Invalid `to base' (" ZEND_LONG_FMT ")", tobase);
RETURN_FALSE;
zend_value_error("Invalid `to base' (" ZEND_LONG_FMT ")", tobase);
return;
}
_php_math_basetozval(Z_STR_P(number), (int)frombase, &temp);

View File

@ -14,9 +14,16 @@ class classA
{
}
echo "Incorrect input\n";
base_convert(1234, 1, 10);
base_convert(1234, 10, 37);
try {
base_convert(1234, 1, 10);
} catch (ValueError $e) {
echo $e->getMessage(), "\n";
}
try {
base_convert(1234, 10, 37);
} catch (ValueError $e) {
echo $e->getMessage(), "\n";
}
try {
base_convert(new classA(), 8, 10);
@ -25,11 +32,8 @@ try {
}
?>
--EXPECTF--
--EXPECT--
*** Testing base_convert() : error conditions ***
Incorrect input
Warning: base_convert(): Invalid `from base' (1) in %s on line %d
Warning: base_convert(): Invalid `to base' (37) in %s on line %d
Invalid `from base' (1)
Invalid `to base' (37)
Object of class classA could not be converted to string