Re: [ZEND-ENGINE-CVS] cvs: ZendEngine2 / zend_builtin_functions.c php-src/tests/lang bug26182.phpt

From: Date: Sat, 29 Nov 2003 10:39:55 +0000
Subject: Re: [ZEND-ENGINE-CVS] cvs: ZendEngine2 / zend_builtin_functions.c php-src/tests/lang bug26182.phpt
References: 1 2  Groups: php.zend-engine.cvs 
Request: Send a blank email to php-zend-engine-cvs+get-2022@lists.php.net to get a copy of this message
Hello Andi, in some way reflection api allows you already to check for the property. But this function simply completes the set of *_exists functions. regards marcus Saturday, November 29, 2003, 10:23:27 AM, you wrote: > I'm travelling so I'll take a look at the bug report next week (I have very > bad access here). > In any case, shouldn't this function exist in the reflection API? > Andi > At 05:06 PM 11/27/2003 +0000, Marcus Boerger wrote: >>helly Thu Nov 27 12:06:26 2003 EDT >> >> Modified files: >> /php-src/tests/lang bug26182.phpt >> /ZendEngine2 zend_builtin_functions.c >> Log: >> Add a support function to check for property existance which is different >> from checking a property from being empty/set. >> Update test #26182. >> >> >>Index: php-src/tests/lang/bug26182.phpt >>diff -u php-src/tests/lang/bug26182.phpt:1.2 >>php-src/tests/lang/bug26182.phpt:1.3 >>--- php-src/tests/lang/bug26182.phpt:1.2 Wed Nov 26 03:47:58 2003 >>+++ php-src/tests/lang/bug26182.phpt Thu Nov 27 12:06:25 2003 >>@@ -17,6 +17,13 @@ >> $t = new A (); >> >> print_r($t); >>+var_dump(property_exists($t, 'x')); >>+var_dump(property_exists($t, 'y')); >>+var_dump(property_exists($t, 'z')); >>+var_dump(isset($t->y)); >>+var_dump(property_exists($t, 'y')); >>+$t->z = 1; >>+var_dump(property_exists($t, 'z')); >> >> ?> >> --EXPECT-- >>@@ -24,3 +31,9 @@ >> ( >> [x] => >> ) >>+bool(false) >>+bool(false) >>+bool(false) >>+bool(false) >>+bool(false) >>+bool(true) >>Index: ZendEngine2/zend_builtin_functions.c >>diff -u ZendEngine2/zend_builtin_functions.c:1.216 >>ZendEngine2/zend_builtin_functions.c:1.217 >>--- ZendEngine2/zend_builtin_functions.c:1.216 Mon Nov 24 13:13:29 2003 >>+++ ZendEngine2/zend_builtin_functions.c Thu Nov 27 12:06:26 2003 >>@@ -17,7 +17,7 @@ >> >> +----------------------------------------------------------------------+ >> */ >> >>-/* $Id: zend_builtin_functions.c,v 1.216 2003/11/24 18:13:29 andi Exp $ */ >>+/* $Id: zend_builtin_functions.c,v 1.217 2003/11/27 17:06:26 helly Exp $ */ >> >> #include "zend.h" >> #include "zend_API.h" >>@@ -42,6 +42,7 @@ >> static ZEND_FUNCTION(defined); >> static ZEND_FUNCTION(get_class); >> static ZEND_FUNCTION(get_parent_class); >>+static ZEND_FUNCTION(property_exists); >> static ZEND_FUNCTION(method_exists); >> static ZEND_FUNCTION(class_exists); >> static ZEND_FUNCTION(function_exists); >>@@ -99,6 +100,7 @@ >> ZEND_FE(defined, NULL) >> ZEND_FE(get_class, NULL) >> ZEND_FE(get_parent_class, NULL) >>+ ZEND_FE(property_exists, NULL) >> ZEND_FE(method_exists, NULL) >> ZEND_FE(class_exists, NULL) >> ZEND_FE(function_exists, NULL) >>@@ -756,6 +758,28 @@ >> /* }}} */ >> >> >>+/* {{{ proto bool property_exists(object obj, string property_name) >>+ Checks if the object has a property */ >>+ZEND_FUNCTION(property_exists) >>+{ >>+ zval **object, **property; >>+ >>+ if (ZEND_NUM_ARGS()!=2 || zend_get_parameters_ex(2, &object, >>&property)==FAILURE) { >>+ ZEND_WRONG_PARAM_COUNT(); >>+ } >>+ if ((*object)->type != IS_OBJECT) { >>+ RETURN_FALSE; >>+ } >>+ >>+ if (Z_OBJ_HANDLER_PP(object, has_property) && >>Z_OBJ_HANDLER_PP(object, has_property)(*object, *property, 1 TSRMLS_CC)) { >>+ RETURN_TRUE; >>+ } else { >>+ RETURN_FALSE; >>+ } >>+} >>+/* }}} */ >>+ >>+ >> /* {{{ proto bool method_exists(object object, string method) >> Checks if the class method exists */ >> ZEND_FUNCTION(method_exists) >> >>-- >>Zend Engine CVS Mailing List (http://cvs.php.net/) >>To unsubscribe, visit: http://www.php.net/unsub.php -- Best regards, Marcus mailto:helly@php.net

« previous php.zend-engine.cvs (#2022) next »