]> granicus.if.org Git - php/commitdiff
- Removed the undocumented object support in the leftover array functions [DOC]
authorFelipe Pena <felipe@php.net>
Fri, 29 Aug 2008 02:48:28 +0000 (02:48 +0000)
committerFelipe Pena <felipe@php.net>
Fri, 29 Aug 2008 02:48:28 +0000 (02:48 +0000)
  (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)

13 files changed:
ext/standard/array.c
ext/standard/tests/array/array_key_exists.phpt
ext/standard/tests/array/array_key_exists_object1.phpt
ext/standard/tests/array/array_key_exists_object2.phpt
ext/standard/tests/array/array_key_exists_variation2.phpt
ext/standard/tests/array/array_merge.phpt
ext/standard/tests/array/array_unique_variation1.phpt
ext/standard/tests/array/array_walk.phpt
ext/standard/tests/array/array_walk_recursive1.phpt
ext/standard/tests/array/array_walk_recursive_variation1.phpt
ext/standard/tests/array/array_walk_variation1.phpt
ext/standard/tests/array/bug40191.phpt
ext/standard/tests/array/natcasesort_variation1.phpt

index 9b9fa23d5fea7fc184e6eb296b9e546b6715e890..443d94e56d43b55b2f28c527f9e3a3a92e59b8c8 100644 (file)
@@ -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;
index 4611017bec9086b2f9df374e55ff3984f2432fb0..d77705848176718ab41c5875a6d7d86266ff76be 100644 (file)
@@ -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
index e246f9fdc9084a55a8eff0417915c39d4afd3981..4e6c2db4affbcd559d09cfd49275cb1e1e4c6a12 100644 (file)
@@ -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"]=>
index 0983da7582a8bedbafe6c41ded7d6c68c2163633..44aaee367005ea5d39a4a0dade9a552a193837df 100644 (file)
@@ -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"]=>
index 12d7db7358f155974cd6e32ae7824a52c4e771c4..1fc9a3d110e5e517316a496e1f983e2859f8f82a 100644 (file)
@@ -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
index bb5a989dac224c0da4bb686c14795daad57b481b..71a2bb2d3665f0fed109631e28a92519739c4649 100644 (file)
@@ -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
index 8029807bb6dedd5e8a605d714a6b520cb8d2da55..d741b79d9f4ee68537160890b049ea254837a18f 100644 (file)
@@ -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
index 90303837f2421f02f5290e1e96a6122a03c79327..a9f1fd1f308ffb4f7e6110169d959f7e7f58f741 100644 (file)
@@ -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
index 096e50e1580d42ec93435777174be370c8fc2032..7198f240c82b566bccd9c918578b8c889d0647cd 100644 (file)
@@ -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
index ab7687a68cbf2381c2aa67a42cee02f3f58ee2b5..742a9dc02963352281ca18f3c44e6f8c1eeb4c23 100644 (file)
@@ -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
index e322437a7619adf31bc3dd22070a453a7e1c4156..da4807b55146aa66174acc2a4156fa928618fc77 100644 (file)
@@ -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
index cce8e9466db3b6dc4aa3a83e7aac621b7abe0cbb..db239487ea4279207dc432b33ffb273ba8208263 100644 (file)
@@ -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
index 509ac99a9c6349289bf1bb54f1f457c68593a463..6c4fbec53c9fe91f40658d3edf77082d909453ab 100644 (file)
@@ -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