+# define USE_STATIC_PROP_EX(ce) zend_update_class_constants(ce TSRMLS_CC)
+# define SET_STATIC_PROP_EX(ce, n, v) \
+ { \
+ int refcount; \
+ zend_uchar is_ref; \
+ zval **__static = GET_STATIC_PROP_EX(ce, n); \
+ \
+ refcount = (*__static)->refcount; \
+ is_ref = (*__static)->is_ref; \
+ zval_dtor(*__static); \
+ **__static = *(v); \
+ zval_copy_ctor(*__static); \
+ (*__static)->refcount = refcount; \
+ (*__static)->is_ref = is_ref; \
+ }
+#define SET_STATIC_PROP_STRING_EX(ce, n, s, d) \
+ { \
+ zval *__tmp; \
+ MAKE_STD_ZVAL(__tmp); \
+ ZVAL_STRING(__tmp, (s), (d)); \
+ SET_STATIC_PROP_EX(ce, n, __tmp); \
+ efree(__tmp); \
+ }
+#define SET_STATIC_PROP_STRINGL_EX(ce, n, s, l, d) \
+ { \
+ zval *__tmp; \
+ MAKE_STD_ZVAL(__tmp); \
+ ZVAL_STRINGL(__tmp, (s), (l), (d)); \
+ SET_STATIC_PROP_EX(ce, n, __tmp); \
+ efree(__tmp); \
+ }