summaryrefslogtreecommitdiff
path: root/Zend/tests/enum/unserialize-refcount.phpt
diff options
context:
space:
mode:
Diffstat (limited to 'Zend/tests/enum/unserialize-refcount.phpt')
-rw-r--r--Zend/tests/enum/unserialize-refcount.phpt45
1 files changed, 45 insertions, 0 deletions
diff --git a/Zend/tests/enum/unserialize-refcount.phpt b/Zend/tests/enum/unserialize-refcount.phpt
new file mode 100644
index 0000000000..447b3af182
--- /dev/null
+++ b/Zend/tests/enum/unserialize-refcount.phpt
@@ -0,0 +1,45 @@
+--TEST--
+Enum unserialize refcount
+--FILE--
+<?php
+
+enum Foo {
+ case Bar;
+}
+
+debug_zval_dump(Foo::Bar);
+
+$foo = Foo::Bar;
+debug_zval_dump($foo);
+
+$bar = unserialize('E:7:"Foo:Bar";');
+debug_zval_dump($foo);
+
+unset($bar);
+debug_zval_dump($foo);
+
+unset($foo);
+debug_zval_dump(Foo::Bar);
+
+?>
+--EXPECT--
+object(Foo)#1 (1) refcount(2){
+ ["name"]=>
+ string(3) "Bar" interned
+}
+object(Foo)#1 (1) refcount(3){
+ ["name"]=>
+ string(3) "Bar" interned
+}
+object(Foo)#1 (1) refcount(4){
+ ["name"]=>
+ string(3) "Bar" interned
+}
+object(Foo)#1 (1) refcount(3){
+ ["name"]=>
+ string(3) "Bar" interned
+}
+object(Foo)#1 (1) refcount(2){
+ ["name"]=>
+ string(3) "Bar" interned
+}