private function normalize($value)
    {
        // Normalize array values
        if (is_array($value)) {
            foreach ($value as &$subValue) {
                $subValue = $this->normalize($subValue);
            }

            return $value;
        }

        // Don't normalize non-string value
        if (!is_string($value)) {
            return $value;
        }

        // Normalize true boolean value
        if ($this->compareValues($value, ['true', 'on', 'yes'])) {
            return true;
        }

        // Normalize false boolean value
        if ($this->compareValues($value, ['false', 'off', 'no', 'none'])) {
            return false;
        }

        // Normalize null value
        if ($this->compareValues($value, ['null'])) {
            return;
        }

        // Normalize numeric value
        if (is_numeric($value)) {
            $numericValue = $value + 0;

            if ((is_int($numericValue) && (int) $value === $numericValue)
                || (is_float($numericValue) && (float) $value === $numericValue)
            ) {
                $value = $numericValue;
            }
        }

        return $value;
    }
private function normalize($value)
    {
        // Normalize array values
        if (is_array($value)) {
            foreach ($value as &$subValue) {
                $subValue = $this->normalize($subValue);
            }

            return $value;
        }

        // Don't normalize non-string value
        if (!is_string($value)) {
            return $value;
        }

        // Normalize true boolean value
        if ($this->compareValues($value, ['true', 'on', 'yes'])) {
            return true;
        }

        // Normalize false boolean value
        if ($this->compareValues($value, ['false', 'off', 'no', 'none'])) {
            return false;
        }

        // Normalize null value
        if ($this->compareValues($value, ['null'])) {
            return;
        }

        // Normalize numeric value
        if (is_numeric($value)) {
            $numericValue = $value + 0;

            if ((is_int($numericValue) && (int) $value === $numericValue)
                || (is_float($numericValue) && (float) $value === $numericValue)
            ) {
                $value = $numericValue;
            }
        }

        return $value;
    }
private function normalize ( $ value ) { // Normalize array values if ( is_array ( $ value ) ) { foreach ( $ value as & $ subValue ) { $ subValue = $ this -> normalize ( $ subValue ) ; } return $ value ; } // Don't normalize non-string value if ( ! is_string ( $ value ) ) { return $ value ; } // Normalize true boolean value if ( $ this -> compareValues ( $ value , [ 'true' , 'on' , 'yes' ] ) ) { return true ; } // Normalize false boolean value if ( $ this -> compareValues ( $ value , [ 'false' , 'off' , 'no' , 'none' ] ) ) { return false ; } // Normalize null value if ( $ this -> compareValues ( $ value , [ 'null' ] ) ) { return ; } // Normalize numeric value if ( is_numeric ( $ value ) ) { $ numericValue = $ value + 0 ; if ( ( is_int ( $ numericValue ) && ( int ) $ value === $ numericValue ) || ( is_float ( $ numericValue ) && ( float ) $ value === $ numericValue ) ) { $ value = $ numericValue ; } } return $ value ; }
Normalizes INI and other values.

@param mixed $value

@return bool|int|null|string|array
Normalizes INI and other values .