diff --git a/reference/classobj/functions/get-mangled-object-vars.xml b/reference/classobj/functions/get-mangled-object-vars.xml
new file mode 100644
index 0000000000..61a02f0cfd
--- /dev/null
+++ b/reference/classobj/functions/get-mangled-object-vars.xml
@@ -0,0 +1,146 @@
+
+
+
+ get_mangled_object_vars
+ Returns an array of mangled object properties
+
+
+
+ &reftitle.description;
+
+ arrayget_mangled_object_vars
+ objectobject
+
+
+ Returns an &array; whose elements are the object's
+ properties. The keys are the member variable names, with a few notable
+ exceptions: private variables have the class name prepended to the variable name,
+ and protected variables have a * prepended to the variable name.
+ These prepended values have NUL bytes on either side.
+
+
+
+
+ &reftitle.parameters;
+
+
+
+ object
+
+
+ An object instance.
+
+
+
+
+
+
+
+
+ &reftitle.returnvalues;
+
+ Returns an &array; containing all properties, regardless of visibility, of object.
+
+
+
+
+ &reftitle.examples;
+
+
+ get_mangled_object_vars example
+
+dynamic = 5;
+$object->{'6'} = 6;
+
+var_dump(get_mangled_object_vars($object));
+
+class AO extends ArrayObject
+{
+ private $private = 1;
+}
+
+$arrayObject = new AO(['x' => 'y']);
+$arrayObject->dynamic = 2;
+
+var_dump(get_mangled_object_vars($arrayObject));
+]]>
+
+ &example.outputs;
+
+
+ int(4)
+ ["public"]=>
+ int(1)
+ ["*protected"]=>
+ int(2)
+ ["Aprivate"]=>
+ int(3)
+ ["dynamic"]=>
+ int(5)
+ [6]=>
+ int(6)
+}
+array(2) {
+ ["AOprivate"]=>
+ int(1)
+ ["dynamic"]=>
+ int(2)
+}
+
+]]>
+
+
+
+
+
+
+ &reftitle.seealso;
+
+
+ get_class_vars
+ get_object_vars
+
+
+
+
+
+
diff --git a/reference/classobj/versions.xml b/reference/classobj/versions.xml
index 7d88b25f6a..51ad032184 100644
--- a/reference/classobj/versions.xml
+++ b/reference/classobj/versions.xml
@@ -15,6 +15,7 @@
+