// parameter number validation / variant determination
if (ZEND_NUM_ARGS() > 6 ||
zend_get_parameters_array_ex(ZEND_NUM_ARGS(), args) == FAILURE) {
- intl_error_set(NULL, U_ILLEGAL_ARGUMENT_ERROR,
- "intlgregcal_create_instance: too many arguments", 0);
- if (!is_constructor) {
- zval_ptr_dtor(return_value);
- RETVAL_NULL();
- }
+ zend_argument_count_error("Too many arguments");
return;
}
+
for (variant = ZEND_NUM_ARGS();
variant > 0 && Z_TYPE(args[variant - 1]) == IS_NULL;
variant--) {}
if (variant == 4) {
- intl_error_set(NULL, U_ILLEGAL_ARGUMENT_ERROR,
- "intlgregcal_create_instance: no variant with 4 arguments "
- "(excluding trailing NULLs)", 0);
- if (!is_constructor) {
- zval_ptr_dtor(return_value);
- RETVAL_NULL();
- }
+ zend_argument_count_error("No variant with 4 arguments (excluding trailing NULLs)");
return;
}
if (variant <= 2) {
if (zend_parse_parameters(MIN(ZEND_NUM_ARGS(), 2),
"|z!s!", &tz_object, &locale, &locale_len) == FAILURE) {
- if (!is_constructor) {
- zval_ptr_dtor(return_value);
- RETVAL_NULL();
- }
return;
}
}
if (variant > 2 && zend_parse_parameters(ZEND_NUM_ARGS(),
"lll|lll", &largs[0], &largs[1], &largs[2], &largs[3], &largs[4],
&largs[5]) == FAILURE) {
- if (!is_constructor) {
- zval_ptr_dtor(return_value);
- RETVAL_NULL();
- }
return;
}
<?php
ini_set("intl.error_level", E_WARNING);
-function print_exception($e) {
- echo "\nException: " . $e->getMessage() . " in " . $e->getFile() . " on line " . $e->getLine() . "\n";
+try {
+ var_dump(intlgregcal_create_instance(1,2,3,4,5,6,7));
+} catch (ArgumentCountError $e) {
+ echo $e->getMessage(), "\n";
+}
+try {
+ var_dump(intlgregcal_create_instance(1,2,3,4,5,6,7,8));
+} catch (ArgumentCountError $e) {
+ echo $e->getMessage(), "\n";
+}
+try {
+ var_dump(intlgregcal_create_instance(1,2,3,4));
+} catch (ArgumentCountError $e) {
+ echo $e->getMessage(), "\n";
}
-
-var_dump(intlgregcal_create_instance(1,2,3,4,5,6,7));
-var_dump(intlgregcal_create_instance(1,2,3,4,5,6,7,8));
-var_dump(intlgregcal_create_instance(1,2,3,4));
try {
var_dump(new IntlGregorianCalendar(1,2,NULL,4));
-} catch (IntlException $e) {
- print_exception($e);
+} catch (ArgumentCountError $e) {
+ echo $e->getMessage(), "\n";
}
try {
var_dump(new IntlGregorianCalendar(1,2,3,4,NULL,array()));
} catch (TypeError $e) {
- print_exception($e);
+ echo $e->getMessage(), "\n";
}
---EXPECTF--
-Warning: intlgregcal_create_instance(): intlgregcal_create_instance: too many arguments in %s on line %d
-NULL
-
-Warning: intlgregcal_create_instance(): intlgregcal_create_instance: too many arguments in %s on line %d
-NULL
-
-Warning: intlgregcal_create_instance(): intlgregcal_create_instance: no variant with 4 arguments (excluding trailing NULLs) in %s on line %d
-NULL
-
-Exception: IntlGregorianCalendar::__construct(): intlgregcal_create_instance: no variant with 4 arguments (excluding trailing NULLs) in %s on line %d
-
-Exception: IntlGregorianCalendar::__construct() expects parameter 6 to be int, array given in %s on line %d
+--EXPECT--
+Too many arguments
+Too many arguments
+No variant with 4 arguments (excluding trailing NULLs)
+No variant with 4 arguments (excluding trailing NULLs)
+IntlGregorianCalendar::__construct() expects parameter 6 to be int, array given