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

From: Date: Sat, 29 Nov 2003 09:23:27 +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-2017@lists.php.net to get a copy of this message
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


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