From: George Peter Banyard Date: Sun, 8 Dec 2019 20:42:01 +0000 (+0100) Subject: Convert warnings to TypeError in php_spl.c X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=a90abe20641ebc838026ae05e968ac51182e290e;p=php Convert warnings to TypeError in php_spl.c Closes GH-4991 --- diff --git a/ext/spl/php_spl.c b/ext/spl/php_spl.c index d79d2dec21..9534fbcf6a 100644 --- a/ext/spl/php_spl.c +++ b/ext/spl/php_spl.c @@ -92,8 +92,8 @@ PHP_FUNCTION(class_parents) } if (Z_TYPE_P(obj) != IS_OBJECT && Z_TYPE_P(obj) != IS_STRING) { - php_error_docref(NULL, E_WARNING, "object or string expected"); - RETURN_FALSE; + zend_type_error("object or string expected"); + return; } if (Z_TYPE_P(obj) == IS_STRING) { @@ -125,8 +125,8 @@ PHP_FUNCTION(class_implements) return; } if (Z_TYPE_P(obj) != IS_OBJECT && Z_TYPE_P(obj) != IS_STRING) { - php_error_docref(NULL, E_WARNING, "object or string expected"); - RETURN_FALSE; + zend_type_error("object or string expected"); + return; } if (Z_TYPE_P(obj) == IS_STRING) { @@ -154,8 +154,8 @@ PHP_FUNCTION(class_uses) return; } if (Z_TYPE_P(obj) != IS_OBJECT && Z_TYPE_P(obj) != IS_STRING) { - php_error_docref(NULL, E_WARNING, "object or string expected"); - RETURN_FALSE; + zend_type_error("object or string expected"); + return; } if (Z_TYPE_P(obj) == IS_STRING) { diff --git a/ext/spl/tests/class_implements_variation1.phpt b/ext/spl/tests/class_implements_variation1.phpt index 392666a4c8..241546694e 100644 --- a/ext/spl/tests/class_implements_variation1.phpt +++ b/ext/spl/tests/class_implements_variation1.phpt @@ -105,7 +105,11 @@ $inputs = array( foreach($inputs as $key =>$value) { echo "\n--$key--\n"; - var_dump( class_implements($value, $autoload) ); + try { + var_dump( class_implements($value, $autoload) ); + } catch (\TypeError $e) { + echo $e->getMessage() . \PHP_EOL; + } }; fclose($res); @@ -115,80 +119,61 @@ fclose($res); *** Testing class_implements() : variation *** --int 0-- -Error: 2 - class_implements(): object or string expected, %s(%d) -bool(false) +object or string expected --int 1-- -Error: 2 - class_implements(): object or string expected, %s(%d) -bool(false) +object or string expected --int 12345-- -Error: 2 - class_implements(): object or string expected, %s(%d) -bool(false) +object or string expected --int -12345-- -Error: 2 - class_implements(): object or string expected, %s(%d) -bool(false) +object or string expected --float 10.5-- -Error: 2 - class_implements(): object or string expected, %s(%d) -bool(false) +object or string expected --float -10.5-- -Error: 2 - class_implements(): object or string expected, %s(%d) -bool(false) +object or string expected --float 12.3456789000e10-- -Error: 2 - class_implements(): object or string expected, %s(%d) -bool(false) +object or string expected --float -12.3456789000e10-- -Error: 2 - class_implements(): object or string expected, %s(%d) -bool(false) +object or string expected --float .5-- -Error: 2 - class_implements(): object or string expected, %s(%d) -bool(false) +object or string expected --empty array-- -Error: 2 - class_implements(): object or string expected, %s(%d) -bool(false) +object or string expected --int indexed array-- -Error: 2 - class_implements(): object or string expected, %s(%d) -bool(false) +object or string expected --associative array-- -Error: 2 - class_implements(): object or string expected, %s(%d) -bool(false) +object or string expected --nested arrays-- -Error: 2 - class_implements(): object or string expected, %s(%d) -bool(false) +object or string expected --uppercase NULL-- -Error: 2 - class_implements(): object or string expected, %s(%d) -bool(false) +object or string expected --lowercase null-- -Error: 2 - class_implements(): object or string expected, %s(%d) -bool(false) +object or string expected --lowercase true-- -Error: 2 - class_implements(): object or string expected, %s(%d) -bool(false) +object or string expected --lowercase false-- -Error: 2 - class_implements(): object or string expected, %s(%d) -bool(false) +object or string expected --uppercase TRUE-- -Error: 2 - class_implements(): object or string expected, %s(%d) -bool(false) +object or string expected --uppercase FALSE-- -Error: 2 - class_implements(): object or string expected, %s(%d) -bool(false) +object or string expected --empty string DQ-- Error: 2 - class_implements(): Class does not exist and could not be loaded, %s(%d) @@ -207,13 +192,10 @@ array(0) { } --undefined var-- -Error: 2 - class_implements(): object or string expected, %s(%d) -bool(false) +object or string expected --unset var-- -Error: 2 - class_implements(): object or string expected, %s(%d) -bool(false) +object or string expected --resource-- -Error: 2 - class_implements(): object or string expected, %s(%d) -bool(false) +object or string expected diff --git a/ext/spl/tests/class_uses_variation1.phpt b/ext/spl/tests/class_uses_variation1.phpt index fa12d3f913..cb2f30e953 100644 --- a/ext/spl/tests/class_uses_variation1.phpt +++ b/ext/spl/tests/class_uses_variation1.phpt @@ -105,7 +105,11 @@ $inputs = array( foreach($inputs as $key =>$value) { echo "\n--$key--\n"; - var_dump( class_uses($value, $autoload) ); + try { + var_dump( class_uses($value, $autoload) ); + } catch (\TypeError $e) { + echo $e->getMessage() . \PHP_EOL; + } }; fclose($res); @@ -115,80 +119,61 @@ fclose($res); *** Testing class_uses() : variation *** --int 0-- -Error: 2 - class_uses(): object or string expected, %s(%d) -bool(false) +object or string expected --int 1-- -Error: 2 - class_uses(): object or string expected, %s(%d) -bool(false) +object or string expected --int 12345-- -Error: 2 - class_uses(): object or string expected, %s(%d) -bool(false) +object or string expected --int -12345-- -Error: 2 - class_uses(): object or string expected, %s(%d) -bool(false) +object or string expected --float 10.5-- -Error: 2 - class_uses(): object or string expected, %s(%d) -bool(false) +object or string expected --float -10.5-- -Error: 2 - class_uses(): object or string expected, %s(%d) -bool(false) +object or string expected --float 12.3456789000e10-- -Error: 2 - class_uses(): object or string expected, %s(%d) -bool(false) +object or string expected --float -12.3456789000e10-- -Error: 2 - class_uses(): object or string expected, %s(%d) -bool(false) +object or string expected --float .5-- -Error: 2 - class_uses(): object or string expected, %s(%d) -bool(false) +object or string expected --empty array-- -Error: 2 - class_uses(): object or string expected, %s(%d) -bool(false) +object or string expected --int indexed array-- -Error: 2 - class_uses(): object or string expected, %s(%d) -bool(false) +object or string expected --associative array-- -Error: 2 - class_uses(): object or string expected, %s(%d) -bool(false) +object or string expected --nested arrays-- -Error: 2 - class_uses(): object or string expected, %s(%d) -bool(false) +object or string expected --uppercase NULL-- -Error: 2 - class_uses(): object or string expected, %s(%d) -bool(false) +object or string expected --lowercase null-- -Error: 2 - class_uses(): object or string expected, %s(%d) -bool(false) +object or string expected --lowercase true-- -Error: 2 - class_uses(): object or string expected, %s(%d) -bool(false) +object or string expected --lowercase false-- -Error: 2 - class_uses(): object or string expected, %s(%d) -bool(false) +object or string expected --uppercase TRUE-- -Error: 2 - class_uses(): object or string expected, %s(%d) -bool(false) +object or string expected --uppercase FALSE-- -Error: 2 - class_uses(): object or string expected, %s(%d) -bool(false) +object or string expected --empty string DQ-- Error: 2 - class_uses(): Class does not exist and could not be loaded, %s(%d) @@ -207,13 +192,10 @@ array(0) { } --undefined var-- -Error: 2 - class_uses(): object or string expected, %s(%d) -bool(false) +object or string expected --unset var-- -Error: 2 - class_uses(): object or string expected, %s(%d) -bool(false) +object or string expected --resource-- -Error: 2 - class_uses(): object or string expected, %s(%d) -bool(false) +object or string expected