]> granicus.if.org Git - php/commitdiff
Promote base_convert "invalid base" errors to ValueError
authorNikita Popov <nikita.ppv@gmail.com>
Tue, 29 Oct 2019 12:12:37 +0000 (13:12 +0100)
committerNikita Popov <nikita.ppv@gmail.com>
Tue, 29 Oct 2019 12:12:37 +0000 (13:12 +0100)
ext/standard/math.c
ext/standard/tests/math/base_convert_error.phpt

index 200c662dcafc828e3892903dd40c77d69669fd58..ef5beeb1601bbd26e763882673f1c8d111aa50f6 100644 (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);
index 5bd64a536bb30b8b5ed952d4569e3b02327db86f..279cfe7924b4a54ecd315720e99c2483c74c49db 100644 (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