From: George Peter Banyard Date: Thu, 22 Aug 2019 10:27:06 +0000 (+0200) Subject: Promote warnings to errors in substr_count() X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=d0754b86b1cb4774c4af64498641ddaaab745418;p=php Promote warnings to errors in substr_count() --- diff --git a/ext/standard/string.c b/ext/standard/string.c index 6a1da25d31..49b228dcac 100644 --- a/ext/standard/string.c +++ b/ext/standard/string.c @@ -5569,8 +5569,8 @@ PHP_FUNCTION(substr_count) ZEND_PARSE_PARAMETERS_END(); if (needle_len == 0) { - php_error_docref(NULL, E_WARNING, "Empty substring"); - RETURN_FALSE; + zend_throw_error(NULL, "Empty substring"); + return; } p = haystack; diff --git a/ext/standard/tests/strings/substr_count_basic.phpt b/ext/standard/tests/strings/substr_count_basic.phpt index 4023a774d8..385689e697 100644 --- a/ext/standard/tests/strings/substr_count_basic.phpt +++ b/ext/standard/tests/strings/substr_count_basic.phpt @@ -4,17 +4,25 @@ Test substr_count() function (basic) getMessage() . "\n"; +} +try { + substr_count("a", ""); +} catch (\Error $e) { + echo $e->getMessage() . "\n"; +} +var_dump(substr_count("", "a")); +var_dump(substr_count("", "a")); +var_dump(substr_count("", chr(0))); $a = str_repeat("abcacba", 100); -var_dump(@substr_count($a, "bca")); +var_dump(substr_count($a, "bca")); $a = str_repeat("abcacbabca", 100); -var_dump(@substr_count($a, "bca")); +var_dump(substr_count($a, "bca")); var_dump(substr_count($a, "bca", 200)); var_dump(substr_count($a, "bca", 200, 50)); var_dump(substr_count($a, "bca", -200)); @@ -26,8 +34,8 @@ echo "Done\n"; ?> --EXPECT-- ***Testing basic operations *** -bool(false) -bool(false) +Empty substring +Empty substring int(0) int(0) int(0)