summaryrefslogtreecommitdiff
path: root/ext/zend_test/test.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/zend_test/test.c')
-rw-r--r--ext/zend_test/test.c31
1 files changed, 31 insertions, 0 deletions
diff --git a/ext/zend_test/test.c b/ext/zend_test/test.c
index 31455daab8..8d533b7907 100644
--- a/ext/zend_test/test.c
+++ b/ext/zend_test/test.c
@@ -137,6 +137,7 @@ ZEND_FUNCTION(zend_leak_variable)
static zend_object *zend_test_class_new(zend_class_entry *class_type) /* {{{ */ {
zend_object *obj = zend_objects_new(class_type);
+ object_properties_init(obj, class_type);
obj->handlers = &zend_test_class_handlers;
return obj;
}
@@ -203,6 +204,36 @@ PHP_MINIT_FUNCTION(zend_test)
zend_declare_property_null(zend_test_class, "_StaticProp", sizeof("_StaticProp") - 1, ZEND_ACC_STATIC);
+ {
+ zend_string *name = zend_string_init("intProp", sizeof("intProp") - 1, 1);
+ zval val;
+ ZVAL_LONG(&val, 123);
+ zend_declare_typed_property(
+ zend_test_class, name, &val, ZEND_ACC_PUBLIC, NULL, ZEND_TYPE_ENCODE(IS_LONG, 0));
+ zend_string_release(name);
+ }
+
+ {
+ zend_string *name = zend_string_init("classProp", sizeof("classProp") - 1, 1);
+ zend_string *class_name = zend_string_init("stdClass", sizeof("stdClass") - 1, 1);
+ zval val;
+ ZVAL_NULL(&val);
+ zend_declare_typed_property(
+ zend_test_class, name, &val, ZEND_ACC_PUBLIC, NULL,
+ ZEND_TYPE_ENCODE_CLASS(class_name, 1));
+ zend_string_release(name);
+ }
+
+ {
+ zend_string *name = zend_string_init("staticIntProp", sizeof("staticIntProp") - 1, 1);
+ zval val;
+ ZVAL_LONG(&val, 123);
+ zend_declare_typed_property(
+ zend_test_class, name, &val, ZEND_ACC_PUBLIC | ZEND_ACC_STATIC, NULL,
+ ZEND_TYPE_ENCODE(IS_LONG, 0));
+ zend_string_release(name);
+ }
+
INIT_CLASS_ENTRY(class_entry, "_ZendTestChildClass", NULL);
zend_test_child_class = zend_register_internal_class_ex(&class_entry, zend_test_class);