diff options
author | Dmitry Stogov <dmitry@php.net> | 2008-07-14 09:49:03 +0000 |
---|---|---|
committer | Dmitry Stogov <dmitry@php.net> | 2008-07-14 09:49:03 +0000 |
commit | d5ef2f466cb112fd977a71419fa4b67d0aa0a2ac (patch) | |
tree | 2f61549b96e8db664a1467f36ce11772600c86a9 /Zend/zend_API.c | |
parent | d23342397c14a6efb3e0b1ea20928f81ccc48657 (diff) | |
download | php-git-d5ef2f466cb112fd977a71419fa4b67d0aa0a2ac.tar.gz |
Added support for lambda functions and closures
Diffstat (limited to 'Zend/zend_API.c')
-rw-r--r-- | Zend/zend_API.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/Zend/zend_API.c b/Zend/zend_API.c index d8f627adad..68f0c7880c 100644 --- a/Zend/zend_API.c +++ b/Zend/zend_API.c @@ -26,6 +26,7 @@ #include "zend_modules.h" #include "zend_constants.h" #include "zend_exceptions.h" +#include "zend_closures.h" #ifdef HAVE_STDARG_H #include <stdarg.h> @@ -2615,6 +2616,16 @@ ZEND_API zend_bool zend_is_callable_ex(zval *callable, uint check_flags, char ** } return 0; + case IS_OBJECT: + if (zend_get_closure(callable, ce_ptr, fptr_ptr, NULL, zobj_ptr_ptr TSRMLS_CC) == SUCCESS) { + if (callable_name) { + *callable_name_len = strlen((*fptr_ptr)->common.function_name); + *callable_name = estrndup((*fptr_ptr)->common.function_name, *callable_name_len); + } + return 1; + } + /* break missing intentionally */ + default: if (callable_name) { zval expr_copy; |