Skip to content

Commit d0754b8

Browse files
committed
Promote warnings to errors in substr_count()
1 parent 0240b90 commit d0754b8

File tree

2 files changed

+19
-11
lines changed

2 files changed

+19
-11
lines changed

ext/standard/string.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5569,8 +5569,8 @@ PHP_FUNCTION(substr_count)
55695569
ZEND_PARSE_PARAMETERS_END();
55705570

55715571
if (needle_len == 0) {
5572-
php_error_docref(NULL, E_WARNING, "Empty substring");
5573-
RETURN_FALSE;
5572+
zend_throw_error(NULL, "Empty substring");
5573+
return;
55745574
}
55755575

55765576
p = haystack;

ext/standard/tests/strings/substr_count_basic.phpt

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,25 @@ Test substr_count() function (basic)
44
<?php
55

66
echo "***Testing basic operations ***\n";
7-
var_dump(@substr_count("", ""));
8-
var_dump(@substr_count("a", ""));
9-
var_dump(@substr_count("", "a"));
10-
var_dump(@substr_count("", "a"));
11-
var_dump(@substr_count("", chr(0)));
7+
try {
8+
substr_count("", "");
9+
} catch (\Error $e) {
10+
echo $e->getMessage() . "\n";
11+
}
12+
try {
13+
substr_count("a", "");
14+
} catch (\Error $e) {
15+
echo $e->getMessage() . "\n";
16+
}
17+
var_dump(substr_count("", "a"));
18+
var_dump(substr_count("", "a"));
19+
var_dump(substr_count("", chr(0)));
1220

1321
$a = str_repeat("abcacba", 100);
14-
var_dump(@substr_count($a, "bca"));
22+
var_dump(substr_count($a, "bca"));
1523

1624
$a = str_repeat("abcacbabca", 100);
17-
var_dump(@substr_count($a, "bca"));
25+
var_dump(substr_count($a, "bca"));
1826
var_dump(substr_count($a, "bca", 200));
1927
var_dump(substr_count($a, "bca", 200, 50));
2028
var_dump(substr_count($a, "bca", -200));
@@ -26,8 +34,8 @@ echo "Done\n";
2634
?>
2735
--EXPECT--
2836
***Testing basic operations ***
29-
bool(false)
30-
bool(false)
37+
Empty substring
38+
Empty substring
3139
int(0)
3240
int(0)
3341
int(0)

0 commit comments

Comments
 (0)