@@ -1024,33 +1024,21 @@ PHPAPI void php_implode(const zend_string *glue, HashTable *pieces, zval *return
1024
1024
PHP_FUNCTION (implode )
1025
1025
{
1026
1026
zend_string * arg1_str = NULL ;
1027
- HashTable * arg1_array = NULL ;
1028
1027
zend_array * pieces = NULL ;
1029
1028
1030
- ZEND_PARSE_PARAMETERS_START (1 , 2 )
1031
- Z_PARAM_ARRAY_HT_OR_STR (arg1_array , arg1_str )
1032
- Z_PARAM_OPTIONAL
1033
- Z_PARAM_ARRAY_HT_OR_NULL (pieces )
1034
- ZEND_PARSE_PARAMETERS_END ();
1029
+ if (ZEND_NUM_ARGS () == 1 ) {
1030
+ ZEND_PARSE_PARAMETERS_START (1 , 1 )
1031
+ Z_PARAM_ARRAY_HT (pieces )
1032
+ ZEND_PARSE_PARAMETERS_END ();
1035
1033
1036
- if (arg1_str != NULL && pieces == NULL ) {
1037
- zend_type_error ("%s(): Argument #2 ($array) must be of type array, null given" , get_active_function_name ());
1038
- RETURN_THROWS ();
1034
+ arg1_str = ZSTR_EMPTY_ALLOC ();
1039
1035
}
1040
1036
1041
- if (pieces == NULL ) {
1042
- if (arg1_array == NULL ) {
1043
- zend_type_error ("%s(): Argument #1 ($array) must be of type array, string given" , get_active_function_name ());
1044
- RETURN_THROWS ();
1045
- }
1046
-
1047
- arg1_str = ZSTR_EMPTY_ALLOC ();
1048
- pieces = arg1_array ;
1049
- } else {
1050
- if (arg1_str == NULL ) {
1051
- zend_argument_type_error (1 , "must be of type string, array given" );
1052
- RETURN_THROWS ();
1053
- }
1037
+ if (ZEND_NUM_ARGS () == 2 ) {
1038
+ ZEND_PARSE_PARAMETERS_START (1 , 2 )
1039
+ Z_PARAM_STR (arg1_str )
1040
+ Z_PARAM_ARRAY_HT (pieces )
1041
+ ZEND_PARSE_PARAMETERS_END ();
1054
1042
}
1055
1043
1056
1044
php_implode (arg1_str , pieces , return_value );
0 commit comments