Commit 9f774e3a85d for php.net
commit 9f774e3a85d34f4aa1558613a9df7703ad3bb513
Author: Jorg Adam Sowa <jorg.sowa@gmail.com>
Date: Sun Jan 25 19:27:57 2026 +0100
chore: improve errror message when passing named parameter for variadic in unsupported internal functions (#21012)
diff --git a/Zend/tests/named_params/internal_variadics.phpt b/Zend/tests/named_params/internal_variadics.phpt
index 3599f644ac9..8312bde406d 100644
--- a/Zend/tests/named_params/internal_variadics.phpt
+++ b/Zend/tests/named_params/internal_variadics.phpt
@@ -15,7 +15,14 @@
echo $e->getMessage(), "\n";
}
+try {
+ $array = [1, 2];
+ array_push($array, ...['values' => 3]);
+} catch (ArgumentCountError $e) {
+ echo $e->getMessage(), "\n";
+}
?>
--EXPECT--
-array_merge() does not accept unknown named parameters
-array_diff_key() does not accept unknown named parameters
+Internal function array_merge() does not accept named variadic arguments
+Internal function array_diff_key() does not accept named variadic arguments
+Internal function array_push() does not accept named variadic arguments
diff --git a/Zend/zend_API.c b/Zend/zend_API.c
index 0881a169dfa..5ae7c7a7934 100644
--- a/Zend/zend_API.c
+++ b/Zend/zend_API.c
@@ -370,8 +370,9 @@ ZEND_API ZEND_COLD void ZEND_FASTCALL zend_unexpected_extra_named_error(void)
{
const char *space;
const char *class_name = get_active_class_name(&space);
- zend_argument_count_error("%s%s%s() does not accept unknown named parameters",
- class_name, space, get_active_function_name());
+ zend_argument_count_error("Internal function %s%s%s() does not accept named variadic arguments",
+ class_name, space, get_active_function_name()
+ );
}
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) /* {{{ */