diff options
author | Andrei Zmievski <andrei@php.net> | 2001-05-09 20:06:39 +0000 |
---|---|---|
committer | Andrei Zmievski <andrei@php.net> | 2001-05-09 20:06:39 +0000 |
commit | 8112d1beba1b60e47f61607fe5d44646b31cf10c (patch) | |
tree | f50664f854d2ec6e3bf0f595c67aba9af67165f4 | |
parent | 5258141db8bc76245af63d3621028cd3bb56854d (diff) | |
download | php-git-8112d1beba1b60e47f61607fe5d44646b31cf10c.tar.gz |
@- Added is_callable() function that can be used to find out whether
@ its argument is a valid callable construct. (Andrei)
-rw-r--r-- | ext/standard/basic_functions.c | 31 | ||||
-rw-r--r-- | ext/standard/basic_functions.h | 1 |
2 files changed, 32 insertions, 0 deletions
diff --git a/ext/standard/basic_functions.c b/ext/standard/basic_functions.c index 5374c24843..41c2d403f9 100644 --- a/ext/standard/basic_functions.c +++ b/ext/standard/basic_functions.c @@ -336,6 +336,7 @@ function_entry basic_functions[] = { PHP_FE(is_array, first_arg_allow_ref) PHP_FE(is_object, first_arg_allow_ref) PHP_FE(is_scalar, NULL) + PHP_FE(is_callable, third_argument_force_ref) PHP_FE(error_log, NULL) PHP_FE(call_user_func, NULL) @@ -2628,6 +2629,36 @@ PHP_FUNCTION(parse_ini_file) /* }}} */ +/* {{{ proto bool is_callable(mixed var [, bool syntax_only [, string callable_name ]]) */ +PHP_FUNCTION(is_callable) +{ + zval **var, **syntax_only, **callable_name; + char *name; + zend_bool retval; + zend_bool syntax = 0; + + if (ZEND_NUM_ARGS() < 1 || ZEND_NUM_ARGS() > 3 || + zend_get_parameters_ex(ZEND_NUM_ARGS(), &var, &syntax_only, &callable_name) == FAILURE) { + WRONG_PARAM_COUNT; + } + + if (ZEND_NUM_ARGS() > 1) { + convert_to_boolean_ex(syntax_only); + syntax = Z_BVAL_PP(syntax_only); + } + + if (ZEND_NUM_ARGS() > 2) { + retval = zend_is_callable(*var, syntax, &name); + zval_dtor(*callable_name); + ZVAL_STRING(*callable_name, name, 0); + } else + retval = zend_is_callable(*var, syntax, NULL); + + RETURN_BOOL(retval); +} +/* }}} */ + + /* * Local variables: * tab-width: 4 diff --git a/ext/standard/basic_functions.h b/ext/standard/basic_functions.h index 381ab04969..86e7756c74 100644 --- a/ext/standard/basic_functions.h +++ b/ext/standard/basic_functions.h @@ -77,6 +77,7 @@ PHP_FUNCTION(is_string); PHP_FUNCTION(is_array); PHP_FUNCTION(is_object); PHP_FUNCTION(is_scalar); +PHP_FUNCTION(is_callable); PHP_FUNCTION(error_log); |