File tree 1 file changed +14
-8
lines changed 1 file changed +14
-8
lines changed Original file line number Diff line number Diff line change @@ -4851,32 +4851,38 @@ PHP_FUNCTION(str_word_count)
4851
4851
return ;
4852
4852
}
4853
4853
4854
- if (char_list ) {
4855
- php_charmask (char_list , char_list_len , ch TSRMLS_CC );
4856
- }
4857
-
4858
- p = str ;
4859
- e = str + str_len ;
4860
-
4861
4854
switch (type ) {
4862
4855
case 1 :
4863
4856
case 2 :
4864
4857
array_init (return_value );
4858
+ if (!str_len ) {
4859
+ return ;
4860
+ }
4865
4861
break ;
4866
4862
case 0 :
4863
+ if (!str_len ) {
4864
+ RETURN_LONG (0 );
4865
+ }
4867
4866
/* nothing to be done */
4868
4867
break ;
4869
4868
default :
4870
4869
php_error_docref (NULL TSRMLS_CC , E_WARNING , "Invalid format value %ld" , type );
4871
4870
RETURN_FALSE ;
4872
4871
}
4873
4872
4873
+ if (char_list ) {
4874
+ php_charmask (char_list , char_list_len , ch TSRMLS_CC );
4875
+ }
4876
+
4877
+ p = str ;
4878
+ e = str + str_len ;
4879
+
4874
4880
/* first character cannot be ' or -, unless explicitly allowed by the user */
4875
4881
if ((* p == '\'' && (!char_list || !ch ['\'' ])) || (* p == '-' && (!char_list || !ch ['-' ]))) {
4876
4882
p ++ ;
4877
4883
}
4878
4884
/* last character cannot be -, unless explicitly allowed by the user */
4879
- if (str_len && * (e - 1 ) == '-' && (!char_list || !ch ['-' ])) {
4885
+ if (* (e - 1 ) == '-' && (!char_list || !ch ['-' ])) {
4880
4886
e -- ;
4881
4887
}
4882
4888
You can’t perform that action at this time.
0 commit comments