diff options
Diffstat (limited to 'ext')
-rw-r--r-- | ext/intl/dateformat/dateformat_create.cpp | 2 | ||||
-rw-r--r-- | ext/intl/tests/bug77895.phpt | 13 |
2 files changed, 14 insertions, 1 deletions
diff --git a/ext/intl/dateformat/dateformat_create.cpp b/ext/intl/dateformat/dateformat_create.cpp index 9268b9ddf5..8c2b72a2da 100644 --- a/ext/intl/dateformat/dateformat_create.cpp +++ b/ext/intl/dateformat/dateformat_create.cpp @@ -70,7 +70,7 @@ static int datefmt_ctor(INTERNAL_FUNCTION_PARAMETERS, zend_bool is_constructor) intl_error_reset(NULL); object = return_value; /* Parse parameters. */ - if (zend_parse_parameters_ex(zpp_flags, ZEND_NUM_ARGS(), "sll|zzs", + if (zend_parse_parameters_ex(zpp_flags, ZEND_NUM_ARGS(), "s!ll|zzs", &locale_str, &locale_len, &date_type, &time_type, &timezone_zv, &calendar_zv, &pattern_str, &pattern_str_len) == FAILURE) { intl_error_set( NULL, U_ILLEGAL_ARGUMENT_ERROR, "datefmt_create: " diff --git a/ext/intl/tests/bug77895.phpt b/ext/intl/tests/bug77895.phpt new file mode 100644 index 0000000000..18b4f778e6 --- /dev/null +++ b/ext/intl/tests/bug77895.phpt @@ -0,0 +1,13 @@ +--TEST-- +Bug #77895: IntlDateFormatter::create fails in strict mode if $locale = null +--FILE-- +<?php + +declare(strict_types=1); + +var_dump(IntlDateFormatter::create(null, IntlDateFormatter::NONE, IntlDateFormatter::NONE)); + +?> +--EXPECT-- +object(IntlDateFormatter)#1 (0) { +} |