diff options
Diffstat (limited to 'src/stringmember.h')
-rw-r--r-- | src/stringmember.h | 24 |
1 files changed, 5 insertions, 19 deletions
diff --git a/src/stringmember.h b/src/stringmember.h index d6ac6ea..8f0a1e9 100644 --- a/src/stringmember.h +++ b/src/stringmember.h @@ -56,28 +56,14 @@ public: * @param size Size of the name * @param flags Additional flags */ - virtual void declare(struct _zend_class_entry *entry, const char *name, int size, int flags) - { -#if PHP_VERSION_ID >= 50400 - zend_declare_property_stringl(entry, name, size, _value.c_str(), _value.size(), flags); -#else - zend_declare_property_stringl(entry, (char*) name, size, (char *) _value.c_str(), _value.size(), flags); -#endif - } - - /** - * Virtual method to declare the class constant - * @param entry Class entry - * @param name Name of the member - * @param size Size of the name - * @param flags Additional flags - */ - virtual void declareConst(struct _zend_class_entry *entry, const char *name, int size) + virtual void declare(struct _zend_class_entry *entry, const char *name, int size, int flags) override { #if PHP_VERSION_ID >= 50400 - zend_declare_class_constant_stringl(entry, name, size, _value.c_str(), _value.size()); + if (flags == constMember) zend_declare_class_constant_stringl(entry, name, size, _value.c_str(), _value.size()); + else zend_declare_property_stringl(entry, name, size, _value.c_str(), _value.size(), flags); #else - zend_declare_class_constant_stringl(entry, (char*) name, size, (char *) _value.c_str(), _value.size()); + if (flags == constMember) zend_declare_property_stringl(entry, (char*) name, size, (char *) _value.c_str(), _value.size(), flags); + else zend_declare_class_constant_stringl(entry, (char*) name, size, (char *) _value.c_str(), _value.size()); #endif } }; |