@@ -857,30 +857,45 @@ PHPAPI void php_implode(zval *delim, zval *arr, zval *return_value)
857
857
}
858
858
/* }}} */
859
859
860
- /* {{{ proto string implode(string glue, array pieces)
860
+ /* {{{ proto string implode([ string glue,] array pieces)
861
861
Joins array elements placing glue string between items and return one string */
862
862
PHP_FUNCTION (implode )
863
863
{
864
- zval * * arg1 , * * arg2 , * delim , * arr ;
865
-
866
- if (ZEND_NUM_ARGS () != 2 ||
867
- zend_get_parameters_ex (2 , & arg1 , & arg2 ) == FAILURE ) {
864
+ zval * * arg1 = NULL , * * arg2 = NULL , * delim , * arr ;
865
+ int argc = ZEND_NUM_ARGS ();
866
+
867
+ if (argc < 1 || argc > 2 ||
868
+ zend_get_parameters_ex (argc , & arg1 , & arg2 ) == FAILURE ) {
868
869
WRONG_PARAM_COUNT ;
869
870
}
870
871
871
- if (Z_TYPE_PP (arg1 ) == IS_ARRAY ) {
872
+ if (argc == 1 ) {
873
+ MAKE_STD_ZVAL (delim );
874
+ #define _IMPL_EMPTY ""
875
+ ZVAL_STRINGL (delim , _IMPL_EMPTY , sizeof (_IMPL_EMPTY ) - 1 , 0 );
876
+
877
+ if (Z_TYPE_PP (arg1 ) != IS_ARRAY ) {
878
+ php_error_docref (NULL TSRMLS_CC , E_WARNING , "Argument to implode must be an array" );
879
+ return ;
880
+ }
881
+
872
882
SEPARATE_ZVAL (arg1 );
873
883
arr = * arg1 ;
874
- convert_to_string_ex (arg2 );
875
- delim = * arg2 ;
876
- } else if (Z_TYPE_PP (arg2 ) == IS_ARRAY ) {
877
- SEPARATE_ZVAL (arg2 )
878
- arr = * arg2 ;
879
- convert_to_string_ex (arg1 );
880
- delim = * arg1 ;
881
884
} else {
882
- php_error_docref (NULL TSRMLS_CC , E_WARNING , "Bad arguments .");
883
- return ;
885
+ if (Z_TYPE_PP (arg1 ) == IS_ARRAY ) {
886
+ SEPARATE_ZVAL (arg1 );
887
+ arr = * arg1 ;
888
+ convert_to_string_ex (arg2 );
889
+ delim = * arg2 ;
890
+ } else if (Z_TYPE_PP (arg2 ) == IS_ARRAY ) {
891
+ SEPARATE_ZVAL (arg2 );
892
+ arr = * arg2 ;
893
+ convert_to_string_ex (arg1 );
894
+ delim = * arg1 ;
895
+ } else {
896
+ php_error_docref (NULL TSRMLS_CC , E_WARNING , "Bad arguments .");
897
+ return ;
898
+ }
884
899
}
885
900
886
901
php_implode (delim , arr , return_value );
0 commit comments