Actually it can't because of self-reference if(is_string($child)) $child = array('_' => $child); 
if I were to define it first as array I would louse the value