diff --git a/Zend/tests/bug31720.phpt b/Zend/tests/bug31720.phpt index 5b2644b58ed..c4680a4789e 100644 --- a/Zend/tests/bug31720.phpt +++ b/Zend/tests/bug31720.phpt @@ -10,5 +10,5 @@ array_walk($array, array($nonesuchvar,'show')); --EXPECTF-- Notice: Undefined variable: nonesuchvar in %s on line %d -Warning: array_walk() expects parameter 2 to be a valid callback, second array member is not a valid method in %s on line %d +Warning: array_walk() expects parameter 2 to be a valid callback, first array member is not a valid class name or object in %s on line %d ===DONE=== diff --git a/Zend/zend_API.c b/Zend/zend_API.c index 3676026d819..22ba08e55f2 100644 --- a/Zend/zend_API.c +++ b/Zend/zend_API.c @@ -2571,7 +2571,7 @@ ZEND_API zend_bool zend_is_callable_ex(zval *callable, uint check_flags, char ** } } else { if (zend_hash_num_elements(Z_ARRVAL_P(callable)) == 2) { - if (!obj) { + if (!obj || (Z_TYPE_PP(obj) != IS_STRING && Z_TYPE_PP(obj) != IS_OBJECT)) { if (error) zend_spprintf(error, 0, "first array member is not a valid class name or object"); } else { if (error) zend_spprintf(error, 0, "second array member is not a valid method"); diff --git a/ext/standard/tests/array/array_filter_variation2.phpt b/ext/standard/tests/array/array_filter_variation2.phpt index 6cb05e10556..1aa262ba62b 100644 --- a/ext/standard/tests/array/array_filter_variation2.phpt +++ b/ext/standard/tests/array/array_filter_variation2.phpt @@ -134,7 +134,7 @@ NULL Warning: array_filter() expects parameter 2 to be a valid callback, array must have exactly two members in %s on line %d NULL -- Iteration 13 -- -Warning: array_filter() expects parameter 2 to be a valid callback, second array member is not a valid method in %s on line %d +Warning: array_filter() expects parameter 2 to be a valid callback, first array member is not a valid class name or object in %s on line %d NULL -- Iteration 14 -- Warning: array_filter() expects parameter 2 to be a valid callback, first array member is not a valid class name or object in %s on line %d diff --git a/ext/standard/tests/array/array_map_variation17.phpt b/ext/standard/tests/array/array_map_variation17.phpt index 18682f3286a..d9440bb2c17 100644 --- a/ext/standard/tests/array/array_map_variation17.phpt +++ b/ext/standard/tests/array/array_map_variation17.phpt @@ -141,11 +141,11 @@ Warning: array_map() expects parameter 1 to be a valid callback, array must have NULL -- Iteration 17 -- -Warning: array_map() expects parameter 1 to be a valid callback, second array member is not a valid method in %s on line %d +Warning: array_map() expects parameter 1 to be a valid callback, first array member is not a valid class name or object in %s on line %d NULL -- Iteration 18 -- -Warning: array_map() expects parameter 1 to be a valid callback, second array member is not a valid method in %s on line %d +Warning: array_map() expects parameter 1 to be a valid callback, first array member is not a valid class name or object in %s on line %d NULL -- Iteration 19 -- diff --git a/ext/standard/tests/array/uasort_variation2.phpt b/ext/standard/tests/array/uasort_variation2.phpt index c106c1dfa0c..62832454106 100644 --- a/ext/standard/tests/array/uasort_variation2.phpt +++ b/ext/standard/tests/array/uasort_variation2.phpt @@ -147,7 +147,7 @@ Warning: uasort() expects parameter 2 to be a valid callback, array must have ex NULL -- Iteration 13 -- -Warning: uasort() expects parameter 2 to be a valid callback, second array member is not a valid method in %s on line %d +Warning: uasort() expects parameter 2 to be a valid callback, first array member is not a valid class name or object in %s on line %d NULL -- Iteration 14 --