Skip to content

Commit 9f774e3

Browse files
authored
chore: improve errror message when passing named parameter for variadic in unsupported internal functions (#21012)
1 parent 5f367b8 commit 9f774e3

File tree

2 files changed

+12
-4
lines changed

2 files changed

+12
-4
lines changed

Zend/tests/named_params/internal_variadics.phpt

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,14 @@ try {
1515
echo $e->getMessage(), "\n";
1616
}
1717

18+
try {
19+
$array = [1, 2];
20+
array_push($array, ...['values' => 3]);
21+
} catch (ArgumentCountError $e) {
22+
echo $e->getMessage(), "\n";
23+
}
1824
?>
1925
--EXPECT--
20-
array_merge() does not accept unknown named parameters
21-
array_diff_key() does not accept unknown named parameters
26+
Internal function array_merge() does not accept named variadic arguments
27+
Internal function array_diff_key() does not accept named variadic arguments
28+
Internal function array_push() does not accept named variadic arguments

Zend/zend_API.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -370,8 +370,9 @@ ZEND_API ZEND_COLD void ZEND_FASTCALL zend_unexpected_extra_named_error(void)
370370
{
371371
const char *space;
372372
const char *class_name = get_active_class_name(&space);
373-
zend_argument_count_error("%s%s%s() does not accept unknown named parameters",
374-
class_name, space, get_active_function_name());
373+
zend_argument_count_error("Internal function %s%s%s() does not accept named variadic arguments",
374+
class_name, space, get_active_function_name()
375+
);
375376
}
376377

377378
ZEND_API ZEND_COLD void ZEND_FASTCALL zend_argument_error_variadic(zend_class_entry *error_ce, uint32_t arg_num, const char *format, va_list va) /* {{{ */

0 commit comments

Comments
 (0)