Newscoop\Services\InputManipulator::getVar PHP Метод

getVar() публичный статический Метод

getVar searches and returns the variable from an array or string in the requested type.
public static getVar ( array $parameters = [] ) : string | integer | boolean
$parameters array
Результат string | integer | boolean the variable found or a bool with checkIfExists
    public static function getVar(array $parameters = array())
    {
        $requiredParams = array('inputObject', 'variableName');
        $defaultParams = array('variableType' => 'string', 'defaultValue' => null, 'checkIfExists' => false, 'ignoreErrors' => false);
        foreach ($requiredParams as $requiredParam) {
            if (!array_key_exists($requiredParam, $parameters)) {
                throw new \InvalidArgumentException(__METHOD__ . ': Parameter ' . $requiredParam . ' is required.');
            }
        }
        foreach ($defaultParams as $defaultParam => $defaultValue) {
            if (!array_key_exists($defaultParam, $parameters)) {
                $parameters[$defaultParam] = $defaultValue;
            }
        }
        // allow the GetVar to also use strings
        if (!is_array($parameters['inputObject'])) {
            $parameters['inputObject'] = array($parameters['variableName'] => $parameters['inputObject']);
        }
        $parameters['variableType'] = strtolower($parameters['variableType']);
        if (!array_key_exists($parameters['variableName'], $parameters['inputObject'])) {
            if ($parameters['checkIfExists']) {
                return false;
            }
            if (!$parameters['ignoreErrors']) {
                throw new \InvalidArgumentException('"' . $parameters['variableName'] . '" is not set');
            }
            return $parameters['defaultValue'];
        } else {
            if ($parameters['checkIfExists']) {
                return true;
            }
        }
        // Clean the slashes
        if (get_magic_quotes_gpc()) {
            if (is_array($parameters['inputObject'][$parameters['variableName']])) {
                $parameters['inputObject'][$parameters['variableName']] = self::cleanMagicQuotes($parameters['inputObject'][$parameters['variableName']]);
            } else {
                $parameters['inputObject'][$parameters['variableName']] = stripslashes($parameters['inputObject'][$parameters['variableName']]);
            }
        }
        switch ($parameters['variableType']) {
            case 'boolean':
                $value = strtolower($parameters['inputObject'][$parameters['variableName']]);
                if ($value == "true" || is_numeric($value) && $value > 0) {
                    return true;
                } else {
                    return false;
                }
                break;
            case 'int':
                if (!is_numeric($parameters['inputObject'][$parameters['variableName']])) {
                    if (!$parameters['ignoreErrors']) {
                        throw new \InvalidArgumentException('"' . $parameters['variableName'] . '" Incorrect type. Expected type: "' . $parameters['variableType'] . '" got "' . gettype($parameters['inputObject'][$parameters['variableName']]) . '" ("' . $parameters['inputObject'][$parameters['variableName']] . '") instead.');
                    }
                    return (int) $parameters['defaultValue'];
                }
                break;
            case 'string':
                if (!is_string($parameters['inputObject'][$parameters['variableName']])) {
                    if (!$parameters['ignoreErrors']) {
                        throw new \InvalidArgumentException('"' . $parameters['variableName'] . '" Incorrect type. Expected type: "' . $parameters['variableType'] . '" got "' . gettype($parameters['inputObject'][$parameters['variableName']]) . '" ("' . $parameters['inputObject'][$parameters['variableName']] . '") instead.');
                    }
                    return $parameters['defaultValue'];
                }
                break;
            case 'array':
                if (!is_array($parameters['inputObject'][$parameters['variableName']])) {
                    $newArray = array();
                    $newArray[] = $parameters['inputObject'][$parameters['variableName']];
                    return $newArray;
                }
                break;
            default:
                throw new \InvalidArgumentException(__METHOD__ . ': Variable type ' . $parameters['variableType'] . ' is not supported.');
                break;
        }
        return $parameters['inputObject'][$parameters['variableName']];
    }