diff options
author | Gabriel Caruso <carusogabriel34@gmail.com> | 2018-01-19 20:01:40 -0200 |
---|---|---|
committer | Nikita Popov <nikita.ppv@gmail.com> | 2018-03-11 16:41:16 +0100 |
commit | d0ee2a8254c69546c7191ac26cdc0499eba27acf (patch) | |
tree | 0607e58a4afb3b439c8f2a98b466fda472c3c33c /Zend/zend_API.c | |
parent | 57896cf5158732101d6e09843b34f6b5f8fbba8a (diff) | |
download | php-git-d0ee2a8254c69546c7191ac26cdc0499eba27acf.tar.gz |
Add is_countable function
RFC: https://wiki.php.net/rfc/is-countable
Diffstat (limited to 'Zend/zend_API.c')
-rw-r--r-- | Zend/zend_API.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/Zend/zend_API.c b/Zend/zend_API.c index ca68310bc9..924457916d 100644 --- a/Zend/zend_API.c +++ b/Zend/zend_API.c @@ -4379,6 +4379,23 @@ ZEND_API zend_bool zend_is_iterable(zval *iterable) /* {{{ */ } /* }}} */ +ZEND_API zend_bool zend_is_countable(zval *countable) /* {{{ */ +{ + switch (Z_TYPE_P(countable)) { + case IS_ARRAY: + return 1; + case IS_OBJECT: + if (Z_OBJ_HT_P(countable)->count_elements) { + return 1; + } + + return instanceof_function(Z_OBJCE_P(countable), zend_ce_countable); + default: + return 0; + } +} +/* }}} */ + /* * Local variables: * tab-width: 4 |