summaryrefslogtreecommitdiff
path: root/Zend/zend_API.c
diff options
context:
space:
mode:
authorStanislav Malyshev <stas@php.net>2003-07-03 09:18:41 +0000
committerStanislav Malyshev <stas@php.net>2003-07-03 09:18:41 +0000
commit5a7b07701bb0f20e62195e0d1a273601106181bf (patch)
tree840c4f5316ccacd23e1d610d58694f0dbcdb416e /Zend/zend_API.c
parent2f96c161df1aeba69cc677c171afc1b106105305 (diff)
downloadphp-git-5a7b07701bb0f20e62195e0d1a273601106181bf.tar.gz
Fix bug #19859 - allow fast_call_user_function to support __call
Diffstat (limited to 'Zend/zend_API.c')
-rw-r--r--Zend/zend_API.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/Zend/zend_API.c b/Zend/zend_API.c
index 70e7928b93..52e32af03d 100644
--- a/Zend/zend_API.c
+++ b/Zend/zend_API.c
@@ -1535,12 +1535,18 @@ zend_bool zend_is_callable(zval *callable, zend_bool syntax_only, char **callabl
if (ce) {
lcname = zend_str_tolower_dup(Z_STRVAL_PP(method), Z_STRLEN_PP(method));
- if (zend_hash_exists(&ce->function_table, lcname, Z_STRLEN_PP(method)+1))
+ if (zend_hash_exists(&ce->function_table, lcname, Z_STRLEN_PP(method)+1)) {
retval = 1;
+ }
+ /* check for __call too */
+ if (retval == 0 && ce->__call != 0) {
+ retval = 1;
+ }
efree(lcname);
}
- } else if (callable_name)
+ } else if (callable_name) {
*callable_name = estrndup("Array", sizeof("Array")-1);
+ }
}
break;