Zend\Diactoros\MessageTrait::filterHeaders PHP Method

filterHeaders() private method

Used by message constructors to allow setting all initial headers at once.
private filterHeaders ( array $originalHeaders ) : array
$originalHeaders array Headers to filter.
return array Filtered headers and names.
    private function filterHeaders(array $originalHeaders)
    {
        $headerNames = $headers = [];
        foreach ($originalHeaders as $header => $value) {
            if (!is_string($header)) {
                throw new InvalidArgumentException(sprintf('Invalid header name; expected non-empty string, received %s', gettype($header)));
            }
            if (!is_array($value) && !is_string($value) && !is_numeric($value)) {
                throw new InvalidArgumentException(sprintf('Invalid header value type; expected number, string, or array; received %s', is_object($value) ? get_class($value) : gettype($value)));
            }
            if (is_array($value)) {
                array_walk($value, function ($item) {
                    if (!is_string($item) && !is_numeric($item)) {
                        throw new InvalidArgumentException(sprintf('Invalid header value type; expected number, string, or array; received %s', is_object($item) ? get_class($item) : gettype($item)));
                    }
                });
            }
            if (!is_array($value)) {
                $value = [$value];
            }
            $headerNames[strtolower($header)] = $header;
            $headers[$header] = $value;
        }
        return [$headerNames, $headers];
    }