cvs: php4 /ext/standard array.c basic_functions.c php_array.h

From: Date: Mon, 30 Apr 2001 04:06:10 +0000
Subject: cvs: php4 /ext/standard array.c basic_functions.c php_array.h
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-5369@lists.php.net to get a copy of this message
david Sun Apr 29 21:06:10 2001 EDT Modified files: /php4/ext/standard array.c basic_functions.c php_array.h Log: @ - Added key_exists() to check if a given key or index exists in an @ array or object (David Croft) Added key_exists() to check if a given key or index exists in an array or object Index: php4/ext/standard/array.c diff -u php4/ext/standard/array.c:1.107 php4/ext/standard/array.c:1.108 --- php4/ext/standard/array.c:1.107 Mon Apr 2 06:20:16 2001 +++ php4/ext/standard/array.c Sun Apr 29 21:06:09 2001 @@ -21,7 +21,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: array.c,v 1.107 2001/04/02 13:20:16 andrei Exp $ */ +/* $Id: array.c,v 1.108 2001/04/30 04:06:09 david Exp $ */ #include "php.h" #include "php_ini.h" @@ -3074,6 +3074,44 @@ } /* }}} */ + +/* {{{ proto bool key_exists(mixed key, array search) + Checks if the given key or index exists in the array */ +PHP_FUNCTION(key_exists) +{ + zval **key, /* key to check for */ + **array; /* array to check in */ + + if (ZEND_NUM_ARGS() != 2 || + zend_get_parameters_ex(ZEND_NUM_ARGS(), &key, &array) == FAILURE) { + WRONG_PARAM_COUNT; + } + + if (Z_TYPE_PP(array) != IS_ARRAY && Z_TYPE_PP(array) != IS_OBJECT) { + php_error(E_WARNING, "Wrong datatype for second argument in call to %s", get_active_function_name()); + RETURN_FALSE; + } + + switch (Z_TYPE_PP(key)) { + case IS_STRING: + if (zend_hash_exists(HASH_OF(*array), Z_STRVAL_PP(key), Z_STRLEN_PP(key)+1)) { + RETURN_TRUE; + } + RETURN_FALSE; + + case IS_LONG: + if (zend_hash_index_exists(HASH_OF(*array), Z_LVAL_PP(key))) { + RETURN_TRUE; + } + RETURN_FALSE; + + default: + php_error(E_WARNING, "Wrong datatype for first argument in call to %s", get_active_function_name()); + RETURN_FALSE; + } + +} +/* }}} */ /* * Local variables: Index: php4/ext/standard/basic_functions.c diff -u php4/ext/standard/basic_functions.c:1.325 php4/ext/standard/basic_functions.c:1.326 --- php4/ext/standard/basic_functions.c:1.325 Tue Apr 17 10:08:03 2001 +++ php4/ext/standard/basic_functions.c Sun Apr 29 21:06:09 2001 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: basic_functions.c,v 1.325 2001/04/17 17:08:03 wez Exp $ */ +/* $Id: basic_functions.c,v 1.326 2001/04/30 04:06:09 david Exp $ */ #include "php.h" #include "php_main.h" @@ -588,6 +588,7 @@ PHP_FE(array_sum, NULL) PHP_FE(array_filter, NULL) PHP_FE(array_map, NULL) + PHP_FE(key_exists, NULL) /* aliases from array.c */ PHP_FALIAS(pos, current, first_arg_force_ref) Index: php4/ext/standard/php_array.h diff -u php4/ext/standard/php_array.h:1.24 php4/ext/standard/php_array.h:1.25 --- php4/ext/standard/php_array.h:1.24 Mon Mar 19 13:20:02 2001 +++ php4/ext/standard/php_array.h Sun Apr 29 21:06:09 2001 @@ -19,7 +19,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: php_array.h,v 1.24 2001/03/19 21:20:02 andrei Exp $ */ +/* $Id: php_array.h,v 1.25 2001/04/30 04:06:09 david Exp $ */ #ifndef PHP_ARRAY_H #define PHP_ARRAY_H @@ -77,6 +77,7 @@ PHP_FUNCTION(array_sum); PHP_FUNCTION(array_filter); PHP_FUNCTION(array_map); +PHP_FUNCTION(key_exists); HashTable* php_splice(HashTable *, int, int, zval ***, int, HashTable **); PHPAPI void php_array_merge(HashTable *dest, HashTable *src, int recursive);

« previous php.cvs (#5369) next »