public function attribute($attribute) {
		if(!is_array($attribute))
			$attribute = explode('.', $attribute);

		$next = array_shift($attribute);
		if(count($attribute) === 0) {
			if(!isset($this->attributes[$next]))
				return (new static(null))->setParent($this);
			else
				return $this->attributes[$next];
		}

		if($next === '<')
			return $this->parent()->attribute($attribute);
		else {
			if(!isset($this->attributes[$next]))
				return (new static(null))->setParent($this);
			else
				return $this->attributes[$next]->attribute($attribute);
		}
	}
public function attribute($attribute) {
		if(!is_array($attribute))
			$attribute = explode('.', $attribute);

		$next = array_shift($attribute);
		if(count($attribute) === 0) {
			if(!isset($this->attributes[$next]))
				return (new static(null))->setParent($this);
			else
				return $this->attributes[$next];
		}

		if($next === '<')
			return $this->parent()->attribute($attribute);
		else {
			if(!isset($this->attributes[$next]))
				return (new static(null))->setParent($this);
			else
				return $this->attributes[$next]->attribute($attribute);
		}
	}
public function attribute ( $ attribute ) { if ( ! is_array ( $ attribute ) ) $ attribute = explode ( '.' , $ attribute ) ; $ next = array_shift ( $ attribute ) ; if ( count ( $ attribute ) === 0 ) { if ( ! isset ( $ this -> attributes [ $ next ] ) ) return ( new static ( null ) ) -> setParent ( $ this ) ; else return $ this -> attributes [ $ next ] ; } if ( $ next === '<' ) return $ this -> parent ( ) -> attribute ( $ attribute ) ; else { if ( ! isset ( $ this -> attributes [ $ next ] ) ) return ( new static ( null ) ) -> setParent ( $ this ) ; else return $ this -> attributes [ $ next ] -> attribute ( $ attribute ) ; } }
Return an children input bag.
@param  array|string $attribute name of attribute
@return InputBag
Return an children input bag .