diff options
author | Emiel Bruijntjes <emiel.bruijntjes@copernica.com> | 2014-02-28 15:17:53 +0100 |
---|---|---|
committer | Emiel Bruijntjes <emiel.bruijntjes@copernica.com> | 2014-02-28 15:17:53 +0100 |
commit | 7cf89f18d766368dd4a14d35e4e144107ad7be36 (patch) | |
tree | 0bd4e449cbfddc928c25aaa1abac8b44c028c8e2 /src/nullmember.h | |
parent | 6072701319a3bf085bbc354c3e3dae9b7d021be0 (diff) |
implemented properties
Diffstat (limited to 'src/nullmember.h')
-rw-r--r-- | src/nullmember.h | 29 |
1 files changed, 13 insertions, 16 deletions
diff --git a/src/nullmember.h b/src/nullmember.h index 252704c..943bf31 100644 --- a/src/nullmember.h +++ b/src/nullmember.h @@ -15,13 +15,15 @@ namespace Php { /** * Class definition */ -class NullMember : public MemberInfo +class NullMember : public Member { public: /** * Constructor + * @param name + * @param flags */ - NullMember() : MemberInfo() {} + NullMember(const char *name, int flags) : Member(name, flags) {} /** * Destructor @@ -29,27 +31,22 @@ public: virtual ~NullMember() {} /** - * Is this a property member - * @return bool + * Internal method to declare the property as constant + * @param zend_class_entry */ - virtual bool isProperty() { return true; } + virtual void constant(struct _zend_class_entry *entry) override + { + zend_declare_class_constant_null(entry, _name.c_str(), _name.size()); + } /** * Virtual method to declare the property * @param entry Class entry - * @param name Name of the member - * @param size Size of the name - * @param flags Additional flags */ - virtual void declare(struct _zend_class_entry *entry, const char *name, int size, MemberModifier flags) override + virtual void declare(struct _zend_class_entry *entry) override { -#if PHP_VERSION_ID >= 50400 - if (flags == constMember) zend_declare_class_constant_null(entry, name, size); - else zend_declare_property_null(entry, name, size, flags); -#else - if (flags == constMember) zend_declare_class_constant_null(entry, (char *) name, size); - else zend_declare_property_null(entry, (char *) name, size, flags); -#endif + // char* cast is necessary for php 5.3 + zend_declare_property_null(entry, (char *)_name.c_str(), _name.size(), _flags); } }; |