public function has($selector) { $pointer =& $this->data; foreach (explode('.', $selector) as $field) { if (!array_key_exists($field, $pointer)) { return false; } $pointer =& $pointer[$field]; } return true; }