summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrei Zmievski <andrei@php.net>2001-05-09 20:06:39 +0000
committerAndrei Zmievski <andrei@php.net>2001-05-09 20:06:39 +0000
commit8112d1beba1b60e47f61607fe5d44646b31cf10c (patch)
treef50664f854d2ec6e3bf0f595c67aba9af67165f4
parent5258141db8bc76245af63d3621028cd3bb56854d (diff)
downloadphp-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.c31
-rw-r--r--ext/standard/basic_functions.h1
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);