From: Felipe Pena Date: Fri, 29 Aug 2008 02:48:28 +0000 (+0000) Subject: - Removed the undocumented object support in the leftover array functions [DOC] X-Git-Tag: BEFORE_HEAD_NS_CHANGE~547 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=a69b38f7e9493ee15845d0510e5adc65c1c95129;p=php - Removed the undocumented object support in the leftover array functions [DOC] (natcasesort, natsort, array_walk, array_walk_recursive, array_unique, array_key_exists) - Changed HASH_OF() to Z_ARRVAL_P() - Fixed bug #45937 (array_walk and array_walk_recursive can alter private/protected object variable) --- diff --git a/ext/standard/array.c b/ext/standard/array.c index 9b9fa23d5f..443d94e56d 100644 --- a/ext/standard/array.c +++ b/ext/standard/array.c @@ -237,16 +237,14 @@ PHP_FUNCTION(krsort) { zval *array; long sort_type = PHP_SORT_REGULAR; - HashTable *target_hash; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "a|l", &array, &sort_type) == FAILURE) { RETURN_FALSE; } - target_hash = HASH_OF(array); php_set_compare_func(sort_type TSRMLS_CC); - if (zend_hash_sort(target_hash, zend_qsort, php_array_reverse_key_compare, 0 TSRMLS_CC) == FAILURE) { + if (zend_hash_sort(Z_ARRVAL_P(array), zend_qsort, php_array_reverse_key_compare, 0 TSRMLS_CC) == FAILURE) { RETURN_FALSE; } RETURN_TRUE; @@ -259,16 +257,14 @@ PHP_FUNCTION(ksort) { zval *array; long sort_type = PHP_SORT_REGULAR; - HashTable *target_hash; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "a|l", &array, &sort_type) == FAILURE) { RETURN_FALSE; } - target_hash = HASH_OF(array); php_set_compare_func(sort_type TSRMLS_CC); - if (zend_hash_sort(target_hash, zend_qsort, php_array_key_compare, 0 TSRMLS_CC) == FAILURE) { + if (zend_hash_sort(Z_ARRVAL_P(array), zend_qsort, php_array_key_compare, 0 TSRMLS_CC) == FAILURE) { RETURN_FALSE; } RETURN_TRUE; @@ -466,24 +462,17 @@ static int php_array_natural_case_compare(const void *a, const void *b TSRMLS_DC static void php_natsort(INTERNAL_FUNCTION_PARAMETERS, int fold_case) /* {{{ */ { zval *array; - HashTable *target_hash; - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z", &array) == FAILURE) { - return; - } - - target_hash = HASH_OF(array); - if (!target_hash) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, "The argument should be an array"); + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "a", &array) == FAILURE) { return; } if (fold_case) { - if (zend_hash_sort(target_hash, zend_qsort, php_array_natural_case_compare, 0 TSRMLS_CC) == FAILURE) { + if (zend_hash_sort(Z_ARRVAL_P(array), zend_qsort, php_array_natural_case_compare, 0 TSRMLS_CC) == FAILURE) { return; } } else { - if (zend_hash_sort(target_hash, zend_qsort, php_array_natural_compare, 0 TSRMLS_CC) == FAILURE) { + if (zend_hash_sort(Z_ARRVAL_P(array), zend_qsort, php_array_natural_compare, 0 TSRMLS_CC) == FAILURE) { return; } } @@ -514,16 +503,14 @@ PHP_FUNCTION(asort) { zval *array; long sort_type = PHP_SORT_REGULAR; - HashTable *target_hash; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "a|l", &array, &sort_type) == FAILURE) { RETURN_FALSE; } - target_hash = HASH_OF(array); php_set_compare_func(sort_type TSRMLS_CC); - if (zend_hash_sort(target_hash, zend_qsort, php_array_data_compare, 0 TSRMLS_CC) == FAILURE) { + if (zend_hash_sort(Z_ARRVAL_P(array), zend_qsort, php_array_data_compare, 0 TSRMLS_CC) == FAILURE) { RETURN_FALSE; } RETURN_TRUE; @@ -536,16 +523,14 @@ PHP_FUNCTION(arsort) { zval *array; long sort_type = PHP_SORT_REGULAR; - HashTable *target_hash; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "a|l", &array, &sort_type) == FAILURE) { RETURN_FALSE; } - target_hash = HASH_OF(array); php_set_compare_func(sort_type TSRMLS_CC); - if (zend_hash_sort(target_hash, zend_qsort, php_array_reverse_data_compare, 0 TSRMLS_CC) == FAILURE) { + if (zend_hash_sort(Z_ARRVAL_P(array), zend_qsort, php_array_reverse_data_compare, 0 TSRMLS_CC) == FAILURE) { RETURN_FALSE; } RETURN_TRUE; @@ -558,16 +543,14 @@ PHP_FUNCTION(sort) { zval *array; long sort_type = PHP_SORT_REGULAR; - HashTable *target_hash; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "a|l", &array, &sort_type) == FAILURE) { RETURN_FALSE; } - target_hash = HASH_OF(array); php_set_compare_func(sort_type TSRMLS_CC); - if (zend_hash_sort(target_hash, zend_qsort, php_array_data_compare, 1 TSRMLS_CC) == FAILURE) { + if (zend_hash_sort(Z_ARRVAL_P(array), zend_qsort, php_array_data_compare, 1 TSRMLS_CC) == FAILURE) { RETURN_FALSE; } RETURN_TRUE; @@ -580,16 +563,13 @@ PHP_FUNCTION(rsort) { zval *array; long sort_type = PHP_SORT_REGULAR; - HashTable *target_hash; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "a|l", &array, &sort_type) == FAILURE) { RETURN_FALSE; } - - target_hash = HASH_OF(array); php_set_compare_func(sort_type TSRMLS_CC); - if (zend_hash_sort(target_hash, zend_qsort, php_array_reverse_data_compare, 1 TSRMLS_CC) == FAILURE) { + if (zend_hash_sort(Z_ARRVAL_P(array), zend_qsort, php_array_reverse_data_compare, 1 TSRMLS_CC) == FAILURE) { RETURN_FALSE; } RETURN_TRUE; @@ -660,7 +640,6 @@ static int php_array_user_compare(const void *a, const void *b TSRMLS_DC) /* {{{ PHP_FUNCTION(usort) { zval *array; - HashTable *target_hash; PHP_ARRAY_CMP_FUNC_VARS; PHP_ARRAY_CMP_FUNC_BACKUP(); @@ -670,9 +649,7 @@ PHP_FUNCTION(usort) return; } - target_hash = HASH_OF(array); - - if (zend_hash_sort(target_hash, zend_qsort, php_array_user_compare, 1 TSRMLS_CC) == FAILURE) { + if (zend_hash_sort(Z_ARRVAL_P(array), zend_qsort, php_array_user_compare, 1 TSRMLS_CC) == FAILURE) { PHP_ARRAY_CMP_FUNC_RESTORE(); RETURN_FALSE; } @@ -686,7 +663,6 @@ PHP_FUNCTION(usort) PHP_FUNCTION(uasort) { zval *array; - HashTable *target_hash; PHP_ARRAY_CMP_FUNC_VARS; PHP_ARRAY_CMP_FUNC_BACKUP(); @@ -696,9 +672,7 @@ PHP_FUNCTION(uasort) return; } - target_hash = HASH_OF(array); - - if (zend_hash_sort(target_hash, zend_qsort, php_array_user_compare, 0 TSRMLS_CC) == FAILURE) { + if (zend_hash_sort(Z_ARRVAL_P(array), zend_qsort, php_array_user_compare, 0 TSRMLS_CC) == FAILURE) { PHP_ARRAY_CMP_FUNC_RESTORE(); RETURN_FALSE; } @@ -773,7 +747,6 @@ static int php_array_user_key_compare(const void *a, const void *b TSRMLS_DC) /* PHP_FUNCTION(uksort) { zval *array; - HashTable *target_hash; PHP_ARRAY_CMP_FUNC_VARS; PHP_ARRAY_CMP_FUNC_BACKUP(); @@ -783,9 +756,7 @@ PHP_FUNCTION(uksort) return; } - target_hash = HASH_OF(array); - - if (zend_hash_sort(target_hash, zend_qsort, php_array_user_key_compare, 0 TSRMLS_CC) == FAILURE) { + if (zend_hash_sort(Z_ARRVAL_P(array), zend_qsort, php_array_user_key_compare, 0 TSRMLS_CC) == FAILURE) { PHP_ARRAY_CMP_FUNC_RESTORE(); RETURN_FALSE; @@ -801,17 +772,15 @@ PHP_FUNCTION(uksort) PHP_FUNCTION(end) { zval *array, **entry; - HashTable *target_hash; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "a", &array) == FAILURE) { return; } - target_hash = HASH_OF(array); - zend_hash_internal_pointer_end(target_hash); + zend_hash_internal_pointer_end(Z_ARRVAL_P(array)); if (return_value_used) { - if (zend_hash_get_current_data(target_hash, (void **) &entry) == FAILURE) { + if (zend_hash_get_current_data(Z_ARRVAL_P(array), (void **) &entry) == FAILURE) { RETURN_FALSE; } @@ -825,17 +794,15 @@ PHP_FUNCTION(end) PHP_FUNCTION(prev) { zval *array, **entry; - HashTable *target_hash; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "a", &array) == FAILURE) { return; } - target_hash = HASH_OF(array); - zend_hash_move_backwards(target_hash); + zend_hash_move_backwards(Z_ARRVAL_P(array)); if (return_value_used) { - if (zend_hash_get_current_data(target_hash, (void **) &entry) == FAILURE) { + if (zend_hash_get_current_data(Z_ARRVAL_P(array), (void **) &entry) == FAILURE) { RETURN_FALSE; } @@ -849,17 +816,15 @@ PHP_FUNCTION(prev) PHP_FUNCTION(next) { zval *array, **entry; - HashTable *target_hash; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "a", &array) == FAILURE) { return; } - target_hash = HASH_OF(array); - zend_hash_move_forward(target_hash); + zend_hash_move_forward(Z_ARRVAL_P(array)); if (return_value_used) { - if (zend_hash_get_current_data(target_hash, (void **) &entry) == FAILURE) { + if (zend_hash_get_current_data(Z_ARRVAL_P(array), (void **) &entry) == FAILURE) { RETURN_FALSE; } @@ -873,17 +838,15 @@ PHP_FUNCTION(next) PHP_FUNCTION(reset) { zval *array, **entry; - HashTable *target_hash; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "a", &array) == FAILURE) { return; } - target_hash = HASH_OF(array); - zend_hash_internal_pointer_reset(target_hash); + zend_hash_internal_pointer_reset(Z_ARRVAL_P(array)); if (return_value_used) { - if (zend_hash_get_current_data(target_hash, (void **) &entry) == FAILURE) { + if (zend_hash_get_current_data(Z_ARRVAL_P(array), (void **) &entry) == FAILURE) { RETURN_FALSE; } @@ -897,14 +860,12 @@ PHP_FUNCTION(reset) PHP_FUNCTION(current) { zval *array, **entry; - HashTable *target_hash; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "a", &array) == FAILURE) { return; } - target_hash = HASH_OF(array); - if (zend_hash_get_current_data(target_hash, (void **) &entry) == FAILURE) { + if (zend_hash_get_current_data(Z_ARRVAL_P(array), (void **) &entry) == FAILURE) { RETURN_FALSE; } RETURN_ZVAL(*entry, 1, 0); @@ -919,14 +880,12 @@ PHP_FUNCTION(key) zstr string_key; uint string_length; ulong num_key; - HashTable *target_hash; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "a", &array) == FAILURE) { return; } - target_hash = HASH_OF(array); - switch (zend_hash_get_current_key_ex(target_hash, &string_key, &string_length, &num_key, 0, NULL)) { + switch (zend_hash_get_current_key_ex(Z_ARRVAL_P(array), &string_key, &string_length, &num_key, 0, NULL)) { case HASH_KEY_IS_STRING: RETVAL_STRINGL(string_key.s, string_length - 1, 1); break; @@ -1073,7 +1032,7 @@ static int php_array_walk(HashTable *target_hash, zval **userdata, int recursive zend_fcall_info_cache orig_array_walk_fci_cache; SEPARATE_ZVAL_IF_NOT_REF(args[0]); - thash = HASH_OF(*(args[0])); + thash = Z_ARRVAL_PP(args[0]); if (thash->nApplyCount > 1) { php_error_docref(NULL TSRMLS_CC, E_WARNING, "recursion detected"); return 0; @@ -1141,26 +1100,17 @@ PHP_FUNCTION(array_walk) *userdata = NULL; zend_fcall_info orig_array_walk_fci; zend_fcall_info_cache orig_array_walk_fci_cache; - HashTable *target_hash; orig_array_walk_fci = BG(array_walk_fci); orig_array_walk_fci_cache = BG(array_walk_fci_cache); - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "zf|z/", &array, &BG(array_walk_fci), &BG(array_walk_fci_cache), &userdata) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "af|z/", &array, &BG(array_walk_fci), &BG(array_walk_fci_cache), &userdata) == FAILURE) { BG(array_walk_fci) = orig_array_walk_fci; BG(array_walk_fci_cache) = orig_array_walk_fci_cache; return; } - target_hash = HASH_OF(array); - if (!target_hash) { - BG(array_walk_fci) = orig_array_walk_fci; - BG(array_walk_fci_cache) = orig_array_walk_fci_cache; - php_error_docref(NULL TSRMLS_CC, E_WARNING, "The argument should be an array"); - RETURN_FALSE; - } - - php_array_walk(target_hash, userdata ? &userdata : NULL, 0 TSRMLS_CC); + php_array_walk(Z_ARRVAL_P(array), userdata ? &userdata : NULL, 0 TSRMLS_CC); BG(array_walk_fci) = orig_array_walk_fci; BG(array_walk_fci_cache) = orig_array_walk_fci_cache; RETURN_TRUE; @@ -1175,26 +1125,17 @@ PHP_FUNCTION(array_walk_recursive) *userdata = NULL; zend_fcall_info orig_array_walk_fci; zend_fcall_info_cache orig_array_walk_fci_cache; - HashTable *target_hash; orig_array_walk_fci = BG(array_walk_fci); orig_array_walk_fci_cache = BG(array_walk_fci_cache); - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "zf|z/", &array, &BG(array_walk_fci), &BG(array_walk_fci_cache), &userdata) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "af|z/", &array, &BG(array_walk_fci), &BG(array_walk_fci_cache), &userdata) == FAILURE) { BG(array_walk_fci) = orig_array_walk_fci; BG(array_walk_fci_cache) = orig_array_walk_fci_cache; return; } - target_hash = HASH_OF(array); - if (!target_hash) { - BG(array_walk_fci) = orig_array_walk_fci; - BG(array_walk_fci_cache) = orig_array_walk_fci_cache; - php_error_docref(NULL TSRMLS_CC, E_WARNING, "The argument should be an array"); - RETURN_FALSE; - } - - php_array_walk(HASH_OF(array), userdata ? &userdata : NULL, 1 TSRMLS_CC); + php_array_walk(Z_ARRVAL_P(array), userdata ? &userdata : NULL, 1 TSRMLS_CC); BG(array_walk_fci) = orig_array_walk_fci; BG(array_walk_fci_cache) = orig_array_walk_fci_cache; RETURN_TRUE; @@ -1211,7 +1152,6 @@ static void php_search_array(INTERNAL_FUNCTION_PARAMETERS, int behavior) /* {{{ *array, /* array to check in */ **entry, /* pointer to array entry */ res; /* comparison result */ - HashTable *target_hash; /* array hashtable */ HashPosition pos; /* hash iterator */ zend_bool strict = 0; /* strict comparison or not */ ulong num_key; @@ -1227,16 +1167,15 @@ static void php_search_array(INTERNAL_FUNCTION_PARAMETERS, int behavior) /* {{{ is_equal_func = is_identical_function; } - target_hash = HASH_OF(array); - zend_hash_internal_pointer_reset_ex(target_hash, &pos); - while (zend_hash_get_current_data_ex(target_hash, (void **)&entry, &pos) == SUCCESS) { + zend_hash_internal_pointer_reset_ex(Z_ARRVAL_P(array), &pos); + while (zend_hash_get_current_data_ex(Z_ARRVAL_P(array), (void **)&entry, &pos) == SUCCESS) { is_equal_func(&res, value, *entry TSRMLS_CC); if (Z_LVAL(res)) { if (behavior == 0) { RETURN_TRUE; } else { /* Return current key */ - switch (zend_hash_get_current_key_ex(target_hash, &string_key, &str_key_len, &num_key, 0, &pos)) { + switch (zend_hash_get_current_key_ex(Z_ARRVAL_P(array), &string_key, &str_key_len, &num_key, 0, &pos)) { case HASH_KEY_IS_STRING: RETURN_STRINGL(string_key.s, str_key_len - 1, 1); break; @@ -1249,7 +1188,7 @@ static void php_search_array(INTERNAL_FUNCTION_PARAMETERS, int behavior) /* {{{ } } } - zend_hash_move_forward_ex(target_hash, &pos); + zend_hash_move_forward_ex(Z_ARRVAL_P(array), &pos); } RETURN_FALSE; @@ -2413,7 +2352,7 @@ PHPAPI int php_array_merge(HashTable *dest, HashTable *src, int recursive TSRMLS utype = IS_UNICODE; ukey: if (recursive && zend_u_hash_find(dest, utype, string_key, string_key_len, (void **)&dest_entry) == SUCCESS) { - HashTable *thash = HASH_OF(*dest_entry); + HashTable *thash = Z_TYPE_PP(dest_entry) == IS_ARRAY ? Z_ARRVAL_PP(dest_entry) : NULL; if ((thash && thash->nApplyCount > 1) || (*src_entry == *dest_entry && Z_ISREF_PP(dest_entry) && (Z_REFCOUNT_PP(dest_entry) % 2))) { php_error_docref(NULL TSRMLS_CC, E_WARNING, "recursion detected"); @@ -2531,7 +2470,7 @@ ukey: static void php_array_merge_or_replace_wrapper(INTERNAL_FUNCTION_PARAMETERS, int recursive, int replace) /* {{{ */ { zval ***args = NULL; - int argc, i, params_ok = 1, init_size = 0; + int argc, i, init_size = 0; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "+", &args, &argc) == FAILURE) { return; @@ -2540,7 +2479,8 @@ static void php_array_merge_or_replace_wrapper(INTERNAL_FUNCTION_PARAMETERS, int for (i = 0; i < argc; i++) { if (Z_TYPE_PP(args[i]) != IS_ARRAY) { php_error_docref(NULL TSRMLS_CC, E_WARNING, "Argument #%d is not an array", i + 1); - params_ok = 0; + efree(args); + RETURN_NULL(); } else { int num = zend_hash_num_elements(Z_ARRVAL_PP(args[i])); @@ -2549,10 +2489,6 @@ static void php_array_merge_or_replace_wrapper(INTERNAL_FUNCTION_PARAMETERS, int } } } - if (params_ok == 0) { - efree(args); - return; - } array_init_size(return_value, init_size); @@ -2865,7 +2801,6 @@ PHP_FUNCTION(array_pad) PHP_FUNCTION(array_flip) { zval *array, **entry, *data; - HashTable *target_hash; zstr string_key; uint str_key_len; ulong num_key; @@ -2875,13 +2810,12 @@ PHP_FUNCTION(array_flip) return; } - target_hash = HASH_OF(array); - array_init_size(return_value, zend_hash_num_elements(target_hash)); + array_init_size(return_value, zend_hash_num_elements(Z_ARRVAL_P(array))); - zend_hash_internal_pointer_reset_ex(target_hash, &pos); - while (zend_hash_get_current_data_ex(target_hash, (void **)&entry, &pos) == SUCCESS) { + zend_hash_internal_pointer_reset_ex(Z_ARRVAL_P(array), &pos); + while (zend_hash_get_current_data_ex(Z_ARRVAL_P(array), (void **)&entry, &pos) == SUCCESS) { MAKE_STD_ZVAL(data); - switch (zend_hash_get_current_key_ex(target_hash, &string_key, &str_key_len, &num_key, 1, &pos)) { + switch (zend_hash_get_current_key_ex(Z_ARRVAL_P(array), &string_key, &str_key_len, &num_key, 1, &pos)) { case HASH_KEY_IS_STRING: ZVAL_STRINGL(data, string_key.s, str_key_len - 1, 0); break; @@ -2903,7 +2837,7 @@ PHP_FUNCTION(array_flip) php_error_docref(NULL TSRMLS_CC, E_WARNING, "Can only flip STRING and INTEGER values!"); } - zend_hash_move_forward_ex(target_hash, &pos); + zend_hash_move_forward_ex(Z_ARRVAL_P(array), &pos); } } /* }}} */ @@ -2965,8 +2899,7 @@ PHP_FUNCTION(array_change_key_case) Removes duplicate values from array */ PHP_FUNCTION(array_unique) { - zval **array, *tmp; - HashTable *target_hash; + zval *array, *tmp; Bucket *p; struct bucketindex { Bucket *b; @@ -2975,30 +2908,24 @@ PHP_FUNCTION(array_unique) struct bucketindex *arTmp, *cmpdata, *lastkept; unsigned int i; - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "Z", &array) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "a", &array) == FAILURE) { return; } - target_hash = HASH_OF(*array); - if (!target_hash) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, "The argument should be an array"); - RETURN_FALSE; - } - - array_init_size(return_value, zend_hash_num_elements(target_hash)); - zend_hash_copy(Z_ARRVAL_P(return_value), target_hash, (copy_ctor_func_t) zval_add_ref, (void *)&tmp, sizeof(zval*)); + array_init_size(return_value, zend_hash_num_elements(Z_ARRVAL_P(array))); + zend_hash_copy(Z_ARRVAL_P(return_value), Z_ARRVAL_P(array), (copy_ctor_func_t) zval_add_ref, (void *)&tmp, sizeof(zval*)); - if (target_hash->nNumOfElements <= 1) { /* nothing to do */ + if (Z_ARRVAL_P(array)->nNumOfElements <= 1) { /* nothing to do */ return; } /* create and sort array with pointers to the target_hash buckets */ - arTmp = (struct bucketindex *) pemalloc((target_hash->nNumOfElements + 1) * sizeof(struct bucketindex), target_hash->persistent); + arTmp = (struct bucketindex *) pemalloc((Z_ARRVAL_P(array)->nNumOfElements + 1) * sizeof(struct bucketindex), Z_ARRVAL_P(array)->persistent); if (!arTmp) { zval_dtor(return_value); RETURN_FALSE; } - for (i = 0, p = target_hash->pListHead; p; i++, p = p->pListNext) { + for (i = 0, p = Z_ARRVAL_P(array)->pListHead; p; i++, p = p->pListNext) { arTmp[i].b = p; arTmp[i].i = i; } @@ -3029,7 +2956,7 @@ PHP_FUNCTION(array_unique) } } } - pefree(arTmp, target_hash->persistent); + pefree(arTmp, Z_ARRVAL_P(array)->persistent); } /* }}} */ @@ -3303,7 +3230,7 @@ static void php_array_intersect(INTERNAL_FUNCTION_PARAMETERS, int behavior, int arr_argc = i; /* only free up to i - 1 */ goto out; } - hash = HASH_OF(*args[i]); + hash = Z_ARRVAL_PP(args[i]); list = (Bucket **) pemalloc((hash->nNumOfElements + 1) * sizeof(Bucket *), hash->persistent); if (!list) { PHP_ARRAY_CMP_FUNC_RESTORE(); @@ -3441,7 +3368,7 @@ static void php_array_intersect(INTERNAL_FUNCTION_PARAMETERS, int behavior, int } out: for (i = 0; i < arr_argc; i++) { - hash = HASH_OF(*args[i]); + hash = Z_ARRVAL_PP(args[i]); pefree(lists[i], hash->persistent); } @@ -3721,7 +3648,7 @@ static void php_array_diff(INTERNAL_FUNCTION_PARAMETERS, int behavior, int data_ arr_argc = i; /* only free up to i - 1 */ goto out; } - hash = HASH_OF(*args[i]); + hash = Z_ARRVAL_PP(args[i]); list = (Bucket **) pemalloc((hash->nNumOfElements + 1) * sizeof(Bucket *), hash->persistent); if (!list) { PHP_ARRAY_CMP_FUNC_RESTORE(); @@ -3855,7 +3782,7 @@ static void php_array_diff(INTERNAL_FUNCTION_PARAMETERS, int behavior, int data_ } out: for (i = 0; i < arr_argc; i++) { - hash = HASH_OF(*args[i]); + hash = Z_ARRVAL_PP(args[i]); pefree(lists[i], hash->persistent); } @@ -4590,29 +4517,24 @@ PHP_FUNCTION(array_key_exists) zval *key, /* key to check for */ *array; /* array to check in */ - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "zz", &key, &array) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "za", &key, &array) == FAILURE) { return; } - if (Z_TYPE_P(array) != IS_ARRAY && Z_TYPE_P(array) != IS_OBJECT) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, "The second argument should be either an array or an object"); - RETURN_FALSE; - } - switch (Z_TYPE_P(key)) { case IS_STRING: case IS_UNICODE: - if (zend_u_symtable_exists(HASH_OF(array), Z_TYPE_P(key), Z_UNIVAL_P(key), Z_UNILEN_P(key) + 1)) { + if (zend_u_symtable_exists(Z_ARRVAL_P(array), Z_TYPE_P(key), Z_UNIVAL_P(key), Z_UNILEN_P(key) + 1)) { RETURN_TRUE; } RETURN_FALSE; case IS_LONG: - if (zend_hash_index_exists(HASH_OF(array), Z_LVAL_P(key))) { + if (zend_hash_index_exists(Z_ARRVAL_P(array), Z_LVAL_P(key))) { RETURN_TRUE; } RETURN_FALSE; case IS_NULL: - if (zend_u_hash_exists(HASH_OF(array), (UG(unicode) ? IS_UNICODE : IS_STRING), EMPTY_ZSTR, 1)) { + if (zend_u_hash_exists(Z_ARRVAL_P(array), (UG(unicode) ? IS_UNICODE : IS_STRING), EMPTY_ZSTR, 1)) { RETURN_TRUE; } RETURN_FALSE; diff --git a/ext/standard/tests/array/array_key_exists.phpt b/ext/standard/tests/array/array_key_exists.phpt index 4611017bec..d777058481 100644 --- a/ext/standard/tests/array/array_key_exists.phpt +++ b/ext/standard/tests/array/array_key_exists.phpt @@ -255,23 +255,23 @@ NULL Warning: array_key_exists(): The first argument should be either a string or an integer in %s on line %d bool(false) -Warning: array_key_exists(): The second argument should be either an array or an object in %s on line %d -bool(false) +Warning: array_key_exists() expects parameter 2 to be array, Unicode string given in %s on line %d +NULL -Warning: array_key_exists(): The second argument should be either an array or an object in %s on line %d -bool(false) +Warning: array_key_exists() expects parameter 2 to be array, integer given in %s on line %d +NULL -Warning: array_key_exists(): The second argument should be either an array or an object in %s on line %d -bool(false) +Warning: array_key_exists() expects parameter 2 to be array, null given in %s on line %d +NULL -Warning: array_key_exists(): The second argument should be either an array or an object in %s on line %d -bool(false) +Warning: array_key_exists() expects parameter 2 to be array, boolean given in %s on line %d +NULL -Warning: array_key_exists(): The second argument should be either an array or an object in %s on line %d -bool(false) +Warning: array_key_exists() expects parameter 2 to be array, boolean given in %s on line %d +NULL -Warning: array_key_exists(): The second argument should be either an array or an object in %s on line %d -bool(false) +Warning: array_key_exists() expects parameter 2 to be array, double given in %s on line %d +NULL Warning: array_key_exists() expects exactly 2 parameters, 3 given in %s on line %d NULL @@ -280,13 +280,23 @@ Warning: array_key_exists(): The first argument should be either a string or an bool(false) *** Testing operation on objects *** -bool(false) -bool(false) -bool(true) -bool(false) -bool(true) + +Warning: array_key_exists() expects parameter 2 to be array, object given in %s on line %d +NULL + +Warning: array_key_exists() expects parameter 2 to be array, object given in %s on line %d +NULL + +Warning: array_key_exists() expects parameter 2 to be array, object given in %s on line %d +NULL + +Warning: array_key_exists() expects parameter 2 to be array, object given in %s on line %d +NULL + +Warning: array_key_exists() expects parameter 2 to be array, object given in %s on line %d +NULL bool(true) -Warning: array_key_exists(): The first argument should be either a string or an integer in %s on line %d -bool(false) +Warning: array_key_exists() expects parameter 2 to be array, object given in %s on line %d +NULL Done diff --git a/ext/standard/tests/array/array_key_exists_object1.phpt b/ext/standard/tests/array/array_key_exists_object1.phpt index e246f9fdc9..4e6c2db4af 100644 --- a/ext/standard/tests/array/array_key_exists_object1.phpt +++ b/ext/standard/tests/array/array_key_exists_object1.phpt @@ -52,9 +52,13 @@ echo "Done"; -- Do not assign a value to $class1->var3 -- $key = var1: -bool(true) + +Warning: array_key_exists() expects parameter 2 to be array, object given in %s on line %d +NULL $key = var3: -bool(true) + +Warning: array_key_exists() expects parameter 2 to be array, object given in %s on line %d +NULL $class1: object(myClass)#%d (3) { [u"var1"]=> @@ -67,7 +71,9 @@ object(myClass)#%d (3) { -- Assign a value to $class2->var3 -- $key = var3: -bool(true) + +Warning: array_key_exists() expects parameter 2 to be array, object given in %s on line %d +NULL $class2: object(myClass)#%d (3) { [u"var1"]=> diff --git a/ext/standard/tests/array/array_key_exists_object2.phpt b/ext/standard/tests/array/array_key_exists_object2.phpt index 0983da7582..44aaee3670 100644 --- a/ext/standard/tests/array/array_key_exists_object2.phpt +++ b/ext/standard/tests/array/array_key_exists_object2.phpt @@ -54,11 +54,17 @@ echo "Done"; -- Do not assign a value to $class1->var3 -- $key = var1: -bool(true) + +Warning: array_key_exists() expects parameter 2 to be array, object given in %s on line %d +NULL $key = var2: -bool(false) + +Warning: array_key_exists() expects parameter 2 to be array, object given in %s on line %d +NULL $key = var3: -bool(false) + +Warning: array_key_exists() expects parameter 2 to be array, object given in %s on line %d +NULL $class1: object(myClass)#1 (3) { [u"var1"]=> @@ -71,7 +77,9 @@ object(myClass)#1 (3) { -- Assign a value to $class2->var3 -- $key = var3: -bool(false) + +Warning: array_key_exists() expects parameter 2 to be array, object given in %s on line %d +NULL $class2: object(myClass)#2 (3) { [u"var1"]=> diff --git a/ext/standard/tests/array/array_key_exists_variation2.phpt b/ext/standard/tests/array/array_key_exists_variation2.phpt index 12d7db7358..1fc9a3d110 100644 --- a/ext/standard/tests/array/array_key_exists_variation2.phpt +++ b/ext/standard/tests/array/array_key_exists_variation2.phpt @@ -104,122 +104,124 @@ echo "Done"; -- Iteration 1 -- -Warning: array_key_exists(): The second argument should be either an array or an object in %s on line %d -bool(false) +Warning: array_key_exists() expects parameter 2 to be array, integer given in %s on line %d +NULL -- Iteration 2 -- -Warning: array_key_exists(): The second argument should be either an array or an object in %s on line %d -bool(false) +Warning: array_key_exists() expects parameter 2 to be array, integer given in %s on line %d +NULL -- Iteration 3 -- -Warning: array_key_exists(): The second argument should be either an array or an object in %s on line %d -bool(false) +Warning: array_key_exists() expects parameter 2 to be array, integer given in %s on line %d +NULL -- Iteration 4 -- -Warning: array_key_exists(): The second argument should be either an array or an object in %s on line %d -bool(false) +Warning: array_key_exists() expects parameter 2 to be array, integer given in %s on line %d +NULL -- Iteration 5 -- -Warning: array_key_exists(): The second argument should be either an array or an object in %s on line %d -bool(false) +Warning: array_key_exists() expects parameter 2 to be array, double given in %s on line %d +NULL -- Iteration 6 -- -Warning: array_key_exists(): The second argument should be either an array or an object in %s on line %d -bool(false) +Warning: array_key_exists() expects parameter 2 to be array, double given in %s on line %d +NULL -- Iteration 7 -- -Warning: array_key_exists(): The second argument should be either an array or an object in %s on line %d -bool(false) +Warning: array_key_exists() expects parameter 2 to be array, double given in %s on line %d +NULL -- Iteration 8 -- -Warning: array_key_exists(): The second argument should be either an array or an object in %s on line %d -bool(false) +Warning: array_key_exists() expects parameter 2 to be array, double given in %s on line %d +NULL -- Iteration 9 -- -Warning: array_key_exists(): The second argument should be either an array or an object in %s on line %d -bool(false) +Warning: array_key_exists() expects parameter 2 to be array, double given in %s on line %d +NULL -- Iteration 10 -- -Warning: array_key_exists(): The second argument should be either an array or an object in %s on line %d -bool(false) +Warning: array_key_exists() expects parameter 2 to be array, null given in %s on line %d +NULL -- Iteration 11 -- -Warning: array_key_exists(): The second argument should be either an array or an object in %s on line %d -bool(false) +Warning: array_key_exists() expects parameter 2 to be array, null given in %s on line %d +NULL -- Iteration 12 -- -Warning: array_key_exists(): The second argument should be either an array or an object in %s on line %d -bool(false) +Warning: array_key_exists() expects parameter 2 to be array, boolean given in %s on line %d +NULL -- Iteration 13 -- -Warning: array_key_exists(): The second argument should be either an array or an object in %s on line %d -bool(false) +Warning: array_key_exists() expects parameter 2 to be array, boolean given in %s on line %d +NULL -- Iteration 14 -- -Warning: array_key_exists(): The second argument should be either an array or an object in %s on line %d -bool(false) +Warning: array_key_exists() expects parameter 2 to be array, boolean given in %s on line %d +NULL -- Iteration 15 -- -Warning: array_key_exists(): The second argument should be either an array or an object in %s on line %d -bool(false) +Warning: array_key_exists() expects parameter 2 to be array, boolean given in %s on line %d +NULL -- Iteration 16 -- -Warning: array_key_exists(): The second argument should be either an array or an object in %s on line %d -bool(false) +Warning: array_key_exists() expects parameter 2 to be array, Unicode string given in %s on line %d +NULL -- Iteration 17 -- -Warning: array_key_exists(): The second argument should be either an array or an object in %s on line %d -bool(false) +Warning: array_key_exists() expects parameter 2 to be array, Unicode string given in %s on line %d +NULL -- Iteration 18 -- bool(false) -- Iteration 19 -- -Warning: array_key_exists(): The second argument should be either an array or an object in %s on line %d -bool(false) +Warning: array_key_exists() expects parameter 2 to be array, Unicode string given in %s on line %d +NULL -- Iteration 20 -- -Warning: array_key_exists(): The second argument should be either an array or an object in %s on line %d -bool(false) +Warning: array_key_exists() expects parameter 2 to be array, Unicode string given in %s on line %d +NULL -- Iteration 21 -- -Warning: array_key_exists(): The second argument should be either an array or an object in %s on line %d -bool(false) +Warning: array_key_exists() expects parameter 2 to be array, Unicode string given in %s on line %d +NULL -- Iteration 22 -- -bool(false) + +Warning: array_key_exists() expects parameter 2 to be array, object given in %s on line %d +NULL -- Iteration 23 -- -Warning: array_key_exists(): The second argument should be either an array or an object in %s on line %d -bool(false) +Warning: array_key_exists() expects parameter 2 to be array, null given in %s on line %d +NULL -- Iteration 24 -- -Warning: array_key_exists(): The second argument should be either an array or an object in %s on line %d -bool(false) +Warning: array_key_exists() expects parameter 2 to be array, null given in %s on line %d +NULL -- Iteration 25 -- -Warning: array_key_exists(): The second argument should be either an array or an object in %s on line %d -bool(false) +Warning: array_key_exists() expects parameter 2 to be array, resource given in %s on line %d +NULL Done diff --git a/ext/standard/tests/array/array_merge.phpt b/ext/standard/tests/array/array_merge.phpt index bb5a989dac..71a2bb2d36 100644 --- a/ext/standard/tests/array/array_merge.phpt +++ b/ext/standard/tests/array/array_merge.phpt @@ -750,8 +750,6 @@ Warning: array_merge() expects at least 1 parameter, 0 given in %s on line %d NULL Warning: array_merge(): Argument #1 is not an array in %s on line %d - -Warning: array_merge(): Argument #2 is not an array in %s on line %d NULL Warning: array_merge(): Argument #3 is not an array in %s on line %d diff --git a/ext/standard/tests/array/array_unique_variation1.phpt b/ext/standard/tests/array/array_unique_variation1.phpt index 8029807bb6..d741b79d9f 100644 --- a/ext/standard/tests/array/array_unique_variation1.phpt +++ b/ext/standard/tests/array/array_unique_variation1.phpt @@ -98,97 +98,98 @@ echo "Done"; *** Testing array_unique() : Passing non array values to $input argument *** -- Iteration 1 -- -Warning: array_unique(): The argument should be an array in %s on line %d -bool(false) +Warning: array_unique() expects parameter 1 to be array, integer given in %s on line %d +NULL -- Iteration 2 -- -Warning: array_unique(): The argument should be an array in %s on line %d -bool(false) +Warning: array_unique() expects parameter 1 to be array, integer given in %s on line %d +NULL -- Iteration 3 -- -Warning: array_unique(): The argument should be an array in %s on line %d -bool(false) +Warning: array_unique() expects parameter 1 to be array, integer given in %s on line %d +NULL -- Iteration 4 -- -Warning: array_unique(): The argument should be an array in %s on line %d -bool(false) +Warning: array_unique() expects parameter 1 to be array, integer given in %s on line %d +NULL -- Iteration 5 -- -Warning: array_unique(): The argument should be an array in %s on line %d -bool(false) +Warning: array_unique() expects parameter 1 to be array, double given in %s on line %d +NULL -- Iteration 6 -- -Warning: array_unique(): The argument should be an array in %s on line %d -bool(false) +Warning: array_unique() expects parameter 1 to be array, double given in %s on line %d +NULL -- Iteration 7 -- -Warning: array_unique(): The argument should be an array in %s on line %d -bool(false) +Warning: array_unique() expects parameter 1 to be array, double given in %s on line %d +NULL -- Iteration 8 -- -Warning: array_unique(): The argument should be an array in %s on line %d -bool(false) +Warning: array_unique() expects parameter 1 to be array, double given in %s on line %d +NULL -- Iteration 9 -- -Warning: array_unique(): The argument should be an array in %s on line %d -bool(false) +Warning: array_unique() expects parameter 1 to be array, double given in %s on line %d +NULL -- Iteration 10 -- -Warning: array_unique(): The argument should be an array in %s on line %d -bool(false) +Warning: array_unique() expects parameter 1 to be array, null given in %s on line %d +NULL -- Iteration 11 -- -Warning: array_unique(): The argument should be an array in %s on line %d -bool(false) +Warning: array_unique() expects parameter 1 to be array, null given in %s on line %d +NULL -- Iteration 12 -- -Warning: array_unique(): The argument should be an array in %s on line %d -bool(false) +Warning: array_unique() expects parameter 1 to be array, boolean given in %s on line %d +NULL -- Iteration 13 -- -Warning: array_unique(): The argument should be an array in %s on line %d -bool(false) +Warning: array_unique() expects parameter 1 to be array, boolean given in %s on line %d +NULL -- Iteration 14 -- -Warning: array_unique(): The argument should be an array in %s on line %d -bool(false) +Warning: array_unique() expects parameter 1 to be array, boolean given in %s on line %d +NULL -- Iteration 15 -- -Warning: array_unique(): The argument should be an array in %s on line %d -bool(false) +Warning: array_unique() expects parameter 1 to be array, boolean given in %s on line %d +NULL -- Iteration 16 -- -Warning: array_unique(): The argument should be an array in %s on line %d -bool(false) +Warning: array_unique() expects parameter 1 to be array, Unicode string given in %s on line %d +NULL -- Iteration 17 -- -Warning: array_unique(): The argument should be an array in %s on line %d -bool(false) +Warning: array_unique() expects parameter 1 to be array, Unicode string given in %s on line %d +NULL -- Iteration 18 -- -Warning: array_unique(): The argument should be an array in %s on line %d -bool(false) +Warning: array_unique() expects parameter 1 to be array, Unicode string given in %s on line %d +NULL -- Iteration 19 -- -Warning: array_unique(): The argument should be an array in %s on line %d -bool(false) +Warning: array_unique() expects parameter 1 to be array, Unicode string given in %s on line %d +NULL -- Iteration 20 -- -Warning: array_unique(): The argument should be an array in %s on line %d -bool(false) +Warning: array_unique() expects parameter 1 to be array, Unicode string given in %s on line %d +NULL -- Iteration 21 -- -array(0) { -} + +Warning: array_unique() expects parameter 1 to be array, object given in %s on line %d +NULL -- Iteration 22 -- -Warning: array_unique(): The argument should be an array in %s on line %d -bool(false) +Warning: array_unique() expects parameter 1 to be array, null given in %s on line %d +NULL -- Iteration 23 -- -Warning: array_unique(): The argument should be an array in %s on line %d -bool(false) +Warning: array_unique() expects parameter 1 to be array, null given in %s on line %d +NULL -- Iteration 24 -- -Warning: array_unique(): The argument should be an array in %s on line %d -bool(false) +Warning: array_unique() expects parameter 1 to be array, resource given in %s on line %d +NULL Done diff --git a/ext/standard/tests/array/array_walk.phpt b/ext/standard/tests/array/array_walk.phpt index 90303837f2..a9f1fd1f30 100644 --- a/ext/standard/tests/array/array_walk.phpt +++ b/ext/standard/tests/array/array_walk.phpt @@ -34,7 +34,7 @@ echo "Done\n"; Warning: array_walk() expects at least 2 parameters, 0 given in %s on line %d NULL -Warning: array_walk() expects parameter 2 to be a valid callback, no array or string given in %s on line %d +Warning: array_walk() expects parameter 1 to be array, integer given in %s on line %d NULL Warning: array_walk() expects parameter 2 to be a valid callback, function '' not found or invalid function name in %s on line %d diff --git a/ext/standard/tests/array/array_walk_recursive1.phpt b/ext/standard/tests/array/array_walk_recursive1.phpt index 096e50e158..7198f240c8 100644 --- a/ext/standard/tests/array/array_walk_recursive1.phpt +++ b/ext/standard/tests/array/array_walk_recursive1.phpt @@ -34,7 +34,7 @@ echo "Done\n"; Warning: array_walk_recursive() expects at least 2 parameters, 0 given in %s on line %d NULL -Warning: array_walk_recursive() expects parameter 2 to be a valid callback, no array or string given in %s on line %d +Warning: array_walk_recursive() expects parameter 1 to be array, integer given in %s on line %d NULL Warning: array_walk_recursive() expects parameter 2 to be a valid callback, function '' not found or invalid function name in %s on line %d diff --git a/ext/standard/tests/array/array_walk_recursive_variation1.phpt b/ext/standard/tests/array/array_walk_recursive_variation1.phpt index ab7687a68c..742a9dc029 100644 --- a/ext/standard/tests/array/array_walk_recursive_variation1.phpt +++ b/ext/standard/tests/array/array_walk_recursive_variation1.phpt @@ -95,156 +95,156 @@ echo "Done" *** Testing array_walk_recursive() : unexpected values for 'input' argument *** -- Iteration 1 -- -Warning: array_walk_recursive(): The argument should be an array in %s on line %d -bool(false) +Warning: array_walk_recursive() expects parameter 1 to be array, integer given in %s on line %d +NULL -Warning: array_walk_recursive(): The argument should be an array in %s on line %d -bool(false) +Warning: array_walk_recursive() expects parameter 1 to be array, integer given in %s on line %d +NULL -- Iteration 2 -- -Warning: array_walk_recursive(): The argument should be an array in %s on line %d -bool(false) +Warning: array_walk_recursive() expects parameter 1 to be array, integer given in %s on line %d +NULL -Warning: array_walk_recursive(): The argument should be an array in %s on line %d -bool(false) +Warning: array_walk_recursive() expects parameter 1 to be array, integer given in %s on line %d +NULL -- Iteration 3 -- -Warning: array_walk_recursive(): The argument should be an array in %s on line %d -bool(false) +Warning: array_walk_recursive() expects parameter 1 to be array, integer given in %s on line %d +NULL -Warning: array_walk_recursive(): The argument should be an array in %s on line %d -bool(false) +Warning: array_walk_recursive() expects parameter 1 to be array, integer given in %s on line %d +NULL -- Iteration 4 -- -Warning: array_walk_recursive(): The argument should be an array in %s on line %d -bool(false) +Warning: array_walk_recursive() expects parameter 1 to be array, integer given in %s on line %d +NULL -Warning: array_walk_recursive(): The argument should be an array in %s on line %d -bool(false) +Warning: array_walk_recursive() expects parameter 1 to be array, integer given in %s on line %d +NULL -- Iteration 5 -- -Warning: array_walk_recursive(): The argument should be an array in %s on line %d -bool(false) +Warning: array_walk_recursive() expects parameter 1 to be array, double given in %s on line %d +NULL -Warning: array_walk_recursive(): The argument should be an array in %s on line %d -bool(false) +Warning: array_walk_recursive() expects parameter 1 to be array, double given in %s on line %d +NULL -- Iteration 6 -- -Warning: array_walk_recursive(): The argument should be an array in %s on line %d -bool(false) +Warning: array_walk_recursive() expects parameter 1 to be array, double given in %s on line %d +NULL -Warning: array_walk_recursive(): The argument should be an array in %s on line %d -bool(false) +Warning: array_walk_recursive() expects parameter 1 to be array, double given in %s on line %d +NULL -- Iteration 7 -- -Warning: array_walk_recursive(): The argument should be an array in %s on line %d -bool(false) +Warning: array_walk_recursive() expects parameter 1 to be array, double given in %s on line %d +NULL -Warning: array_walk_recursive(): The argument should be an array in %s on line %d -bool(false) +Warning: array_walk_recursive() expects parameter 1 to be array, double given in %s on line %d +NULL -- Iteration 8 -- -Warning: array_walk_recursive(): The argument should be an array in %s on line %d -bool(false) +Warning: array_walk_recursive() expects parameter 1 to be array, double given in %s on line %d +NULL -Warning: array_walk_recursive(): The argument should be an array in %s on line %d -bool(false) +Warning: array_walk_recursive() expects parameter 1 to be array, double given in %s on line %d +NULL -- Iteration 9 -- -Warning: array_walk_recursive(): The argument should be an array in %s on line %d -bool(false) +Warning: array_walk_recursive() expects parameter 1 to be array, double given in %s on line %d +NULL -Warning: array_walk_recursive(): The argument should be an array in %s on line %d -bool(false) +Warning: array_walk_recursive() expects parameter 1 to be array, double given in %s on line %d +NULL -- Iteration 10 -- -Warning: array_walk_recursive(): The argument should be an array in %s on line %d -bool(false) +Warning: array_walk_recursive() expects parameter 1 to be array, null given in %s on line %d +NULL -Warning: array_walk_recursive(): The argument should be an array in %s on line %d -bool(false) +Warning: array_walk_recursive() expects parameter 1 to be array, null given in %s on line %d +NULL -- Iteration 11 -- -Warning: array_walk_recursive(): The argument should be an array in %s on line %d -bool(false) +Warning: array_walk_recursive() expects parameter 1 to be array, null given in %s on line %d +NULL -Warning: array_walk_recursive(): The argument should be an array in %s on line %d -bool(false) +Warning: array_walk_recursive() expects parameter 1 to be array, null given in %s on line %d +NULL -- Iteration 12 -- -Warning: array_walk_recursive(): The argument should be an array in %s on line %d -bool(false) +Warning: array_walk_recursive() expects parameter 1 to be array, boolean given in %s on line %d +NULL -Warning: array_walk_recursive(): The argument should be an array in %s on line %d -bool(false) +Warning: array_walk_recursive() expects parameter 1 to be array, boolean given in %s on line %d +NULL -- Iteration 13 -- -Warning: array_walk_recursive(): The argument should be an array in %s on line %d -bool(false) +Warning: array_walk_recursive() expects parameter 1 to be array, boolean given in %s on line %d +NULL -Warning: array_walk_recursive(): The argument should be an array in %s on line %d -bool(false) +Warning: array_walk_recursive() expects parameter 1 to be array, boolean given in %s on line %d +NULL -- Iteration 14 -- -Warning: array_walk_recursive(): The argument should be an array in %s on line %d -bool(false) +Warning: array_walk_recursive() expects parameter 1 to be array, boolean given in %s on line %d +NULL -Warning: array_walk_recursive(): The argument should be an array in %s on line %d -bool(false) +Warning: array_walk_recursive() expects parameter 1 to be array, boolean given in %s on line %d +NULL -- Iteration 15 -- -Warning: array_walk_recursive(): The argument should be an array in %s on line %d -bool(false) +Warning: array_walk_recursive() expects parameter 1 to be array, boolean given in %s on line %d +NULL -Warning: array_walk_recursive(): The argument should be an array in %s on line %d -bool(false) +Warning: array_walk_recursive() expects parameter 1 to be array, boolean given in %s on line %d +NULL -- Iteration 16 -- -Warning: array_walk_recursive(): The argument should be an array in %s on line %d -bool(false) +Warning: array_walk_recursive() expects parameter 1 to be array, Unicode string given in %s on line %d +NULL -Warning: array_walk_recursive(): The argument should be an array in %s on line %d -bool(false) +Warning: array_walk_recursive() expects parameter 1 to be array, Unicode string given in %s on line %d +NULL -- Iteration 17 -- -Warning: array_walk_recursive(): The argument should be an array in %s on line %d -bool(false) +Warning: array_walk_recursive() expects parameter 1 to be array, Unicode string given in %s on line %d +NULL -Warning: array_walk_recursive(): The argument should be an array in %s on line %d -bool(false) +Warning: array_walk_recursive() expects parameter 1 to be array, Unicode string given in %s on line %d +NULL -- Iteration 18 -- -Warning: array_walk_recursive(): The argument should be an array in %s on line %d -bool(false) +Warning: array_walk_recursive() expects parameter 1 to be array, Unicode string given in %s on line %d +NULL -Warning: array_walk_recursive(): The argument should be an array in %s on line %d -bool(false) +Warning: array_walk_recursive() expects parameter 1 to be array, Unicode string given in %s on line %d +NULL -- Iteration 19 -- -Warning: array_walk_recursive(): The argument should be an array in %s on line %d -bool(false) +Warning: array_walk_recursive() expects parameter 1 to be array, Unicode string given in %s on line %d +NULL -Warning: array_walk_recursive(): The argument should be an array in %s on line %d -bool(false) +Warning: array_walk_recursive() expects parameter 1 to be array, Unicode string given in %s on line %d +NULL -- Iteration 20 -- -Warning: array_walk_recursive(): The argument should be an array in %s on line %d -bool(false) +Warning: array_walk_recursive() expects parameter 1 to be array, resource given in %s on line %d +NULL -Warning: array_walk_recursive(): The argument should be an array in %s on line %d -bool(false) +Warning: array_walk_recursive() expects parameter 1 to be array, resource given in %s on line %d +NULL -- Iteration 21 -- -Warning: array_walk_recursive(): The argument should be an array in %s on line %d -bool(false) +Warning: array_walk_recursive() expects parameter 1 to be array, null given in %s on line %d +NULL -Warning: array_walk_recursive(): The argument should be an array in %s on line %d -bool(false) +Warning: array_walk_recursive() expects parameter 1 to be array, null given in %s on line %d +NULL -- Iteration 22 -- -Warning: array_walk_recursive(): The argument should be an array in %s on line %d -bool(false) +Warning: array_walk_recursive() expects parameter 1 to be array, null given in %s on line %d +NULL -Warning: array_walk_recursive(): The argument should be an array in %s on line %d -bool(false) +Warning: array_walk_recursive() expects parameter 1 to be array, null given in %s on line %d +NULL Done diff --git a/ext/standard/tests/array/array_walk_variation1.phpt b/ext/standard/tests/array/array_walk_variation1.phpt index e322437a76..da4807b551 100644 --- a/ext/standard/tests/array/array_walk_variation1.phpt +++ b/ext/standard/tests/array/array_walk_variation1.phpt @@ -95,156 +95,156 @@ echo "Done" *** Testing array_walk() : unexpected values for 'input' argument *** -- Iteration 1 -- -Warning: array_walk(): The argument should be an array in %s on line %d -bool(false) +Warning: array_walk() expects parameter 1 to be array, integer given in %s on line %d +NULL -Warning: array_walk(): The argument should be an array in %s on line %d -bool(false) +Warning: array_walk() expects parameter 1 to be array, integer given in %s on line %d +NULL -- Iteration 2 -- -Warning: array_walk(): The argument should be an array in %s on line %d -bool(false) +Warning: array_walk() expects parameter 1 to be array, integer given in %s on line %d +NULL -Warning: array_walk(): The argument should be an array in %s on line %d -bool(false) +Warning: array_walk() expects parameter 1 to be array, integer given in %s on line %d +NULL -- Iteration 3 -- -Warning: array_walk(): The argument should be an array in %s on line %d -bool(false) +Warning: array_walk() expects parameter 1 to be array, integer given in %s on line %d +NULL -Warning: array_walk(): The argument should be an array in %s on line %d -bool(false) +Warning: array_walk() expects parameter 1 to be array, integer given in %s on line %d +NULL -- Iteration 4 -- -Warning: array_walk(): The argument should be an array in %s on line %d -bool(false) +Warning: array_walk() expects parameter 1 to be array, integer given in %s on line %d +NULL -Warning: array_walk(): The argument should be an array in %s on line %d -bool(false) +Warning: array_walk() expects parameter 1 to be array, integer given in %s on line %d +NULL -- Iteration 5 -- -Warning: array_walk(): The argument should be an array in %s on line %d -bool(false) +Warning: array_walk() expects parameter 1 to be array, double given in %s on line %d +NULL -Warning: array_walk(): The argument should be an array in %s on line %d -bool(false) +Warning: array_walk() expects parameter 1 to be array, double given in %s on line %d +NULL -- Iteration 6 -- -Warning: array_walk(): The argument should be an array in %s on line %d -bool(false) +Warning: array_walk() expects parameter 1 to be array, double given in %s on line %d +NULL -Warning: array_walk(): The argument should be an array in %s on line %d -bool(false) +Warning: array_walk() expects parameter 1 to be array, double given in %s on line %d +NULL -- Iteration 7 -- -Warning: array_walk(): The argument should be an array in %s on line %d -bool(false) +Warning: array_walk() expects parameter 1 to be array, double given in %s on line %d +NULL -Warning: array_walk(): The argument should be an array in %s on line %d -bool(false) +Warning: array_walk() expects parameter 1 to be array, double given in %s on line %d +NULL -- Iteration 8 -- -Warning: array_walk(): The argument should be an array in %s on line %d -bool(false) +Warning: array_walk() expects parameter 1 to be array, double given in %s on line %d +NULL -Warning: array_walk(): The argument should be an array in %s on line %d -bool(false) +Warning: array_walk() expects parameter 1 to be array, double given in %s on line %d +NULL -- Iteration 9 -- -Warning: array_walk(): The argument should be an array in %s on line %d -bool(false) +Warning: array_walk() expects parameter 1 to be array, double given in %s on line %d +NULL -Warning: array_walk(): The argument should be an array in %s on line %d -bool(false) +Warning: array_walk() expects parameter 1 to be array, double given in %s on line %d +NULL -- Iteration 10 -- -Warning: array_walk(): The argument should be an array in %s on line %d -bool(false) +Warning: array_walk() expects parameter 1 to be array, null given in %s on line %d +NULL -Warning: array_walk(): The argument should be an array in %s on line %d -bool(false) +Warning: array_walk() expects parameter 1 to be array, null given in %s on line %d +NULL -- Iteration 11 -- -Warning: array_walk(): The argument should be an array in %s on line %d -bool(false) +Warning: array_walk() expects parameter 1 to be array, null given in %s on line %d +NULL -Warning: array_walk(): The argument should be an array in %s on line %d -bool(false) +Warning: array_walk() expects parameter 1 to be array, null given in %s on line %d +NULL -- Iteration 12 -- -Warning: array_walk(): The argument should be an array in %s on line %d -bool(false) +Warning: array_walk() expects parameter 1 to be array, boolean given in %s on line %d +NULL -Warning: array_walk(): The argument should be an array in %s on line %d -bool(false) +Warning: array_walk() expects parameter 1 to be array, boolean given in %s on line %d +NULL -- Iteration 13 -- -Warning: array_walk(): The argument should be an array in %s on line %d -bool(false) +Warning: array_walk() expects parameter 1 to be array, boolean given in %s on line %d +NULL -Warning: array_walk(): The argument should be an array in %s on line %d -bool(false) +Warning: array_walk() expects parameter 1 to be array, boolean given in %s on line %d +NULL -- Iteration 14 -- -Warning: array_walk(): The argument should be an array in %s on line %d -bool(false) +Warning: array_walk() expects parameter 1 to be array, boolean given in %s on line %d +NULL -Warning: array_walk(): The argument should be an array in %s on line %d -bool(false) +Warning: array_walk() expects parameter 1 to be array, boolean given in %s on line %d +NULL -- Iteration 15 -- -Warning: array_walk(): The argument should be an array in %s on line %d -bool(false) +Warning: array_walk() expects parameter 1 to be array, boolean given in %s on line %d +NULL -Warning: array_walk(): The argument should be an array in %s on line %d -bool(false) +Warning: array_walk() expects parameter 1 to be array, boolean given in %s on line %d +NULL -- Iteration 16 -- -Warning: array_walk(): The argument should be an array in %s on line %d -bool(false) +Warning: array_walk() expects parameter 1 to be array, Unicode string given in %s on line %d +NULL -Warning: array_walk(): The argument should be an array in %s on line %d -bool(false) +Warning: array_walk() expects parameter 1 to be array, Unicode string given in %s on line %d +NULL -- Iteration 17 -- -Warning: array_walk(): The argument should be an array in %s on line %d -bool(false) +Warning: array_walk() expects parameter 1 to be array, Unicode string given in %s on line %d +NULL -Warning: array_walk(): The argument should be an array in %s on line %d -bool(false) +Warning: array_walk() expects parameter 1 to be array, Unicode string given in %s on line %d +NULL -- Iteration 18 -- -Warning: array_walk(): The argument should be an array in %s on line %d -bool(false) +Warning: array_walk() expects parameter 1 to be array, Unicode string given in %s on line %d +NULL -Warning: array_walk(): The argument should be an array in %s on line %d -bool(false) +Warning: array_walk() expects parameter 1 to be array, Unicode string given in %s on line %d +NULL -- Iteration 19 -- -Warning: array_walk(): The argument should be an array in %s on line %d -bool(false) +Warning: array_walk() expects parameter 1 to be array, Unicode string given in %s on line %d +NULL -Warning: array_walk(): The argument should be an array in %s on line %d -bool(false) +Warning: array_walk() expects parameter 1 to be array, Unicode string given in %s on line %d +NULL -- Iteration 20 -- -Warning: array_walk(): The argument should be an array in %s on line %d -bool(false) +Warning: array_walk() expects parameter 1 to be array, resource given in %s on line %d +NULL -Warning: array_walk(): The argument should be an array in %s on line %d -bool(false) +Warning: array_walk() expects parameter 1 to be array, resource given in %s on line %d +NULL -- Iteration 21 -- -Warning: array_walk(): The argument should be an array in %s on line %d -bool(false) +Warning: array_walk() expects parameter 1 to be array, null given in %s on line %d +NULL -Warning: array_walk(): The argument should be an array in %s on line %d -bool(false) +Warning: array_walk() expects parameter 1 to be array, null given in %s on line %d +NULL -- Iteration 22 -- -Warning: array_walk(): The argument should be an array in %s on line %d -bool(false) +Warning: array_walk() expects parameter 1 to be array, null given in %s on line %d +NULL -Warning: array_walk(): The argument should be an array in %s on line %d -bool(false) +Warning: array_walk() expects parameter 1 to be array, null given in %s on line %d +NULL Done diff --git a/ext/standard/tests/array/bug40191.phpt b/ext/standard/tests/array/bug40191.phpt index cce8e9466d..db239487ea 100644 --- a/ext/standard/tests/array/bug40191.phpt +++ b/ext/standard/tests/array/bug40191.phpt @@ -16,10 +16,6 @@ var_dump($arr); echo "Done\n"; ?> --EXPECTF-- -array(2) { - [0]=> - unicode(3) "foo" - [1]=> - unicode(3) "bar" -} +Warning: array_unique() expects parameter 1 to be array, object given in %s on line %d +NULL Done diff --git a/ext/standard/tests/array/natcasesort_variation1.phpt b/ext/standard/tests/array/natcasesort_variation1.phpt index 509ac99a9c..6c4fbec53c 100644 --- a/ext/standard/tests/array/natcasesort_variation1.phpt +++ b/ext/standard/tests/array/natcasesort_variation1.phpt @@ -99,87 +99,87 @@ echo "Done"; -- Iteration 1 -- -Warning: natcasesort(): The argument should be an array in %s on line %d +Warning: natcasesort() expects parameter 1 to be array, integer given in %s on line %d NULL -- Iteration 2 -- -Warning: natcasesort(): The argument should be an array in %s on line %d +Warning: natcasesort() expects parameter 1 to be array, integer given in %s on line %d NULL -- Iteration 3 -- -Warning: natcasesort(): The argument should be an array in %s on line %d +Warning: natcasesort() expects parameter 1 to be array, integer given in %s on line %d NULL -- Iteration 4 -- -Warning: natcasesort(): The argument should be an array in %s on line %d +Warning: natcasesort() expects parameter 1 to be array, integer given in %s on line %d NULL -- Iteration 5 -- -Warning: natcasesort(): The argument should be an array in %s on line %d +Warning: natcasesort() expects parameter 1 to be array, double given in %s on line %d NULL -- Iteration 6 -- -Warning: natcasesort(): The argument should be an array in %s on line %d +Warning: natcasesort() expects parameter 1 to be array, double given in %s on line %d NULL -- Iteration 7 -- -Warning: natcasesort(): The argument should be an array in %s on line %d +Warning: natcasesort() expects parameter 1 to be array, double given in %s on line %d NULL -- Iteration 8 -- -Warning: natcasesort(): The argument should be an array in %s on line %d +Warning: natcasesort() expects parameter 1 to be array, double given in %s on line %d NULL -- Iteration 9 -- -Warning: natcasesort(): The argument should be an array in %s on line %d +Warning: natcasesort() expects parameter 1 to be array, double given in %s on line %d NULL -- Iteration 10 -- -Warning: natcasesort(): The argument should be an array in %s on line %d +Warning: natcasesort() expects parameter 1 to be array, null given in %s on line %d NULL -- Iteration 11 -- -Warning: natcasesort(): The argument should be an array in %s on line %d +Warning: natcasesort() expects parameter 1 to be array, null given in %s on line %d NULL -- Iteration 12 -- -Warning: natcasesort(): The argument should be an array in %s on line %d +Warning: natcasesort() expects parameter 1 to be array, boolean given in %s on line %d NULL -- Iteration 13 -- -Warning: natcasesort(): The argument should be an array in %s on line %d +Warning: natcasesort() expects parameter 1 to be array, boolean given in %s on line %d NULL -- Iteration 14 -- -Warning: natcasesort(): The argument should be an array in %s on line %d +Warning: natcasesort() expects parameter 1 to be array, boolean given in %s on line %d NULL -- Iteration 15 -- -Warning: natcasesort(): The argument should be an array in %s on line %d +Warning: natcasesort() expects parameter 1 to be array, boolean given in %s on line %d NULL -- Iteration 16 -- -Warning: natcasesort(): The argument should be an array in %s on line %d +Warning: natcasesort() expects parameter 1 to be array, Unicode string given in %s on line %d NULL -- Iteration 17 -- -Warning: natcasesort(): The argument should be an array in %s on line %d +Warning: natcasesort() expects parameter 1 to be array, Unicode string given in %s on line %d NULL -- Iteration 18 -- @@ -187,34 +187,36 @@ bool(true) -- Iteration 19 -- -Warning: natcasesort(): The argument should be an array in %s on line %d +Warning: natcasesort() expects parameter 1 to be array, Unicode string given in %s on line %d NULL -- Iteration 20 -- -Warning: natcasesort(): The argument should be an array in %s on line %d +Warning: natcasesort() expects parameter 1 to be array, Unicode string given in %s on line %d NULL -- Iteration 21 -- -Warning: natcasesort(): The argument should be an array in %s on line %d +Warning: natcasesort() expects parameter 1 to be array, Unicode string given in %s on line %d NULL -- Iteration 22 -- -bool(true) + +Warning: natcasesort() expects parameter 1 to be array, object given in %s on line %d +NULL -- Iteration 23 -- -Warning: natcasesort(): The argument should be an array in %s on line %d +Warning: natcasesort() expects parameter 1 to be array, null given in %s on line %d NULL -- Iteration 24 -- -Warning: natcasesort(): The argument should be an array in %s on line %d +Warning: natcasesort() expects parameter 1 to be array, null given in %s on line %d NULL -- Iteration 25 -- -Warning: natcasesort(): The argument should be an array in %s on line %d +Warning: natcasesort() expects parameter 1 to be array, resource given in %s on line %d NULL Done