diff options
author | Andrei Zmievski <andrei@php.net> | 2000-08-22 18:39:29 +0000 |
---|---|---|
committer | Andrei Zmievski <andrei@php.net> | 2000-08-22 18:39:29 +0000 |
commit | d89c5b231c6c819a2c01366a641d132f241663e9 (patch) | |
tree | 11c2982ec028eb96ebcd3bddfea3a91bc0826ed2 | |
parent | 207814916d5711d642067e3bef853145785bbd03 (diff) | |
download | php-git-d89c5b231c6c819a2c01366a641d132f241663e9.tar.gz |
@- Updated array_walk() to be able to accept array($obj, 'method')
@ syntax for the walk function. (Andrei)
-rw-r--r-- | ext/standard/array.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/ext/standard/array.c b/ext/standard/array.c index 844b1f4ea3..f6784cfe86 100644 --- a/ext/standard/array.c +++ b/ext/standard/array.c @@ -1015,11 +1015,18 @@ PHP_FUNCTION(array_walk) { } target_hash = HASH_OF(*array); if (!target_hash) { - php_error(E_WARNING, "Wrong datatype in array_walk() call"); + php_error(E_WARNING, "Wrong datatype in %s() call", + get_active_function_name()); + BG(array_walk_func_name) = old_walk_func_name; + RETURN_FALSE; + } + if (Z_TYPE_PP(BG(array_walk_func_name)) != IS_ARRAY && + Z_TYPE_PP(BG(array_walk_func_name)) != IS_STRING) { + php_error(E_WARNING, "Wrong syntax for function name in %s() call", + get_active_function_name()); BG(array_walk_func_name) = old_walk_func_name; RETURN_FALSE; } - convert_to_string_ex(BG(array_walk_func_name)); php_array_walk(target_hash, userdata); BG(array_walk_func_name) = old_walk_func_name; RETURN_TRUE; |