function _features_override_remove_recursion in Features Override 6.2
Helper to removes recursion from an object/array.
Parameters
$item: An object or array passed by reference.
1 call to _features_override_remove_recursion()
- features_override_remove_recursion in ./
features_override.export.inc - Removes recursion from an object or array.
File
- ./
features_override.export.inc, line 363 - Helper function to export features overrides.
Code
function _features_override_remove_recursion(&$item) {
$is_object = is_object($item);
if ($is_object) {
$item->{FEATURES_OVERRIDE_RECURSION_MARKER} = 1;
}
else {
$item[FEATURES_OVERRIDE_RECURSION_MARKER] = 1;
}
foreach ($item as $key => $value) {
if (is_array($value) || is_object($value)) {
$remove = is_array($value) ? !empty($value[FEATURES_OVERRIDE_RECURSION_MARKER]) : !empty($value->{FEATURES_OVERRIDE_RECURSION_MARKER});
if ($remove) {
if ($is_object) {
unset($item->{$key});
}
else {
unset($item[$key]);
}
}
else {
features_override_remove_recursion($value);
}
}
}
}