Prevent SimpleXML from silently modifying types of variables that are
assigned to its objects.
Implementation notes for overloaded object modules:
- If you return a zval which is not otherwise referenced by the extension
or the engine's symbol table, its reference count should be 0.
- If you receive a value zval in write_property/write_dimension, you
may only modify it if its reference count is 1. Otherwise, you must
create a copy of that zval before making any changes. You should NOT
modify the reference count of the value passed to you.