public function fetchGlobal($method, $index = null, $filter = null, $flags = null)
	{
		$method = strtolower($method);

		if (! isset($this->globals[$method]))
		{
			$this->populateGlobals($method);
		}

		// Null filters cause null values to return.
		if (is_null($filter))
		{
			$filter = FILTER_DEFAULT;
		}

		// Return all values when $index is null
		if (is_null($index))
		{
			$values = [];
			foreach ($this->globals[$method] as $key => $value)
			{
				$values[$key] = is_array($value)
					? $this->fetchGlobal($method, $key, $filter, $flags)
					: filter_var($value, $filter, $flags);
			}

			return $values;
		}

		// allow fetching multiple keys at once
		if (is_array($index))
		{
			$output = [];

			foreach ($index as $key)
			{
				$output[$key] = $this->fetchGlobal($method, $key, $filter, $flags);
			}

			return $output;
		}

		// Does the index contain array notation?
		if (($count = preg_match_all('/(?:^[^\[]+)|\[[^]]*\]/', $index, $matches)) > 1)
		{
			$value = $this->globals[$method];
			for ($i = 0; $i < $count; $i++)
			{
				$key = trim($matches[0][$i], '[]');

				if ($key === '') // Empty notation will return the value as array
				{
					break;
				}

				if (isset($value[$key]))
				{
					$value = $value[$key];
				}
				else
				{
					return null;
				}
			}
		}

		if (! isset($value))
		{
			$value = $this->globals[$method][$index] ?? null;
		}

		// Cannot filter these types of data automatically...
		if (is_array($value) || is_object($value) || is_null($value))
		{
			return $value;
		}

		return filter_var($value, $filter, $flags);
	}
public function fetchGlobal($method, $index = null, $filter = null, $flags = null)
	{
		$method = strtolower($method);

		if (! isset($this->globals[$method]))
		{
			$this->populateGlobals($method);
		}

		// Null filters cause null values to return.
		if (is_null($filter))
		{
			$filter = FILTER_DEFAULT;
		}

		// Return all values when $index is null
		if (is_null($index))
		{
			$values = [];
			foreach ($this->globals[$method] as $key => $value)
			{
				$values[$key] = is_array($value)
					? $this->fetchGlobal($method, $key, $filter, $flags)
					: filter_var($value, $filter, $flags);
			}

			return $values;
		}

		// allow fetching multiple keys at once
		if (is_array($index))
		{
			$output = [];

			foreach ($index as $key)
			{
				$output[$key] = $this->fetchGlobal($method, $key, $filter, $flags);
			}

			return $output;
		}

		// Does the index contain array notation?
		if (($count = preg_match_all('/(?:^[^\[]+)|\[[^]]*\]/', $index, $matches)) > 1)
		{
			$value = $this->globals[$method];
			for ($i = 0; $i < $count; $i++)
			{
				$key = trim($matches[0][$i], '[]');

				if ($key === '') // Empty notation will return the value as array
				{
					break;
				}

				if (isset($value[$key]))
				{
					$value = $value[$key];
				}
				else
				{
					return null;
				}
			}
		}

		if (! isset($value))
		{
			$value = $this->globals[$method][$index] ?? null;
		}

		// Cannot filter these types of data automatically...
		if (is_array($value) || is_object($value) || is_null($value))
		{
			return $value;
		}

		return filter_var($value, $filter, $flags);
	}
public function fetchGlobal ( $ method , $ index = null , $ filter = null , $ flags = null ) { $ method = strtolower ( $ method ) ; if ( ! isset ( $ this -> globals [ $ method ] ) ) { $ this -> populateGlobals ( $ method ) ; } // Null filters cause null values to return. if ( is_null ( $ filter ) ) { $ filter = FILTER_DEFAULT ; } // Return all values when $index is null if ( is_null ( $ index ) ) { $ values = [ ] ; foreach ( $ this -> globals [ $ method ] as $ key => $ value ) { $ values [ $ key ] = is_array ( $ value ) ? $ this -> fetchGlobal ( $ method , $ key , $ filter , $ flags ) : filter_var ( $ value , $ filter , $ flags ) ; } return $ values ; } // allow fetching multiple keys at once if ( is_array ( $ index ) ) { $ output = [ ] ; foreach ( $ index as $ key ) { $ output [ $ key ] = $ this -> fetchGlobal ( $ method , $ key , $ filter , $ flags ) ; } return $ output ; } // Does the index contain array notation? if ( ( $ count = preg_match_all ( '/(?:^[^\[]+)|\[[^]]*\]/' , $ index , $ matches ) ) > 1 ) { $ value = $ this -> globals [ $ method ] ; for ( $ i = 0 ; $ i < $ count ; $ i ++ ) { $ key = trim ( $ matches [ 0 ] [ $ i ] , '[]' ) ; if ( $ key === '' ) // Empty notation will return the value as array { break ; } if ( isset ( $ value [ $ key ] ) ) { $ value = $ value [ $ key ] ; } else { return null ; } } } if ( ! isset ( $ value ) ) { $ value = $ this -> globals [ $ method ] [ $ index ] ?? null ; } // Cannot filter these types of data automatically... if ( is_array ( $ value ) || is_object ( $ value ) || is_null ( $ value ) ) { return $ value ; } return filter_var ( $ value , $ filter , $ flags ) ; }
Fetches one or more items from a global, like cookies, get, post, etc.
Can optionally filter the input when you retrieve it by passing in
a filter.

If $type is an array, it must conform to the input allowed by the
filter_input_array method.

http://php.net/manual/en/filter.filters.sanitize.php

@param string            $method Input filter constant
@param string|array|null $index
@param integer|null      $filter Filter constant
@param mixed             $flags

@return mixed
Fetches one or more items from a global like cookies get post etc . Can optionally filter the input when you retrieve it by passing in a filter .