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

From: Date: Thu, 27 Nov 2003 17:09:46 +0000
Subject: Re: [ZEND-ENGINE-CVS] cvs: ZendEngine2 / zend_builtin_functions.c php-src/tests/lang bug26182.phpt
References: 1  Groups: php.zend-engine.cvs 
Request: Send a blank email to php-zend-engine-cvs+get-2010@lists.php.net to get a copy of this message
The bug wasn't about this..it was about breaking backwards compatibility by suddenly creating properties magically.. --Jani On Thu, 27 Nov 2003, 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) > > -- https://www.paypal.com/xclick/business=sniper@php.net&no_note=1&tax=0&currency_code=EUR

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