options; foreach ( explode( '.', (string) $path ) as $segment ) { if ( ! is_object( $node ) ) { return $fallback; } $node = $node->$segment; } return null === $node ? $fallback : $node; } }