0 关注者

类 yii\web\HeaderCollection

继承关系yii\web\HeaderCollection » yii\base\BaseObject
实现接口ArrayAccess, Countable, IteratorAggregate, yii\base\Configurable
可用版本2.0
源代码 https://github.com/yiisoft/yii2/blob/master/framework/web/HeaderCollection.php

HeaderCollection 用于 yii\web\Response 来维护当前已注册的 HTTP 头信息。

公有属性

隐藏继承属性

属性 类型 描述 定义于
$count integer 集合中头信息的数量。 yii\web\HeaderCollection
$iterator ArrayIterator 用于遍历集合中头信息的迭代器。 yii\web\HeaderCollection

公有方法

隐藏继承方法

方法 描述 定义于
__call() 调用不是类方法的命名方法。 yii\base\BaseObject
__construct() 构造函数。 yii\base\BaseObject
__get() 返回对象属性的值。 yii\base\BaseObject
__isset() 检查属性是否已设置,即定义且不为 null。 yii\base\BaseObject
__set() 设置对象属性的值。 yii\base\BaseObject
__unset() 将对象属性设置为 null。 yii\base\BaseObject
add() 添加新的头信息。 yii\web\HeaderCollection
canGetProperty() 返回一个值,指示属性是否可读。 yii\base\BaseObject
canSetProperty() 返回一个值,指示属性是否可写。 yii\base\BaseObject
className() 返回此类的完全限定名称。 yii\base\BaseObject
count() 返回集合中头信息的数量。 yii\web\HeaderCollection
fromArray() 从数组填充头信息集合。 yii\web\HeaderCollection
get() 返回命名的头信息。 yii\web\HeaderCollection
getCount() 返回集合中头信息的数量。 yii\web\HeaderCollection
getIterator() 返回用于遍历集合中头信息的迭代器。 yii\web\HeaderCollection
has() 返回一个值,指示命名的头信息是否存在。 yii\web\HeaderCollection
hasMethod() 返回一个值,指示方法是否已定义。 yii\base\BaseObject
hasProperty() 返回一个值,指示属性是否已定义。 yii\base\BaseObject
init() 初始化对象。 yii\base\BaseObject
offsetExists() 返回是否存在具有指定名称的头信息。 yii\web\HeaderCollection
offsetGet() 返回具有指定名称的头信息。 yii\web\HeaderCollection
offsetSet() 将头信息添加到集合中。 yii\web\HeaderCollection
offsetUnset() 移除命名的头信息。 yii\web\HeaderCollection
remove() 移除头信息。 yii\web\HeaderCollection
removeAll() 移除所有头信息。 yii\web\HeaderCollection
set() 添加新的头信息。 yii\web\HeaderCollection
setDefault() 仅当头信息尚不存在时设置新的头信息。 yii\web\HeaderCollection
toArray() 将集合作为 PHP 数组返回。 yii\web\HeaderCollection
toOriginalArray() 将集合作为 PHP 数组返回,但它使用原始的头信息名称(区分大小写)作为键,而不是像 toArray() 那样使用规范化的头信息名称作为键。 yii\web\HeaderCollection

属性详情

隐藏继承属性

$count public 只读 属性

集合中头信息的数量。

public integer getCount ( )
$iterator public 只读 属性

用于遍历集合中头信息的迭代器。

方法详情

隐藏继承方法

__call() public 方法

定义于: yii\base\BaseObject::__call()

调用不是类方法的命名方法。

不要直接调用此方法,因为它是一个 PHP 魔术方法,当调用未知方法时会隐式调用。

public mixed __call ( $name, $params )
$name string

方法名

$params array

方法参数

返回值 mixed

方法返回值

抛出异常 yii\base\UnknownMethodException

调用未知方法时

                public function __call($name, $params)
{
    throw new UnknownMethodException('Calling unknown method: ' . get_class($this) . "::$name()");
}

            
__construct() public 方法

定义于: yii\base\BaseObject::__construct()

构造函数。

默认实现执行两件事

  • 使用给定的配置 $config 初始化对象。
  • 调用 init()

如果此方法在子类中被重写,建议

  • 构造函数的最后一个参数是一个配置数组,如这里的 $config
  • 在构造函数的末尾调用父类的实现。
public void __construct ( $config = [] )
$config array

将用于初始化对象属性的键值对

                public function __construct($config = [])
{
    if (!empty($config)) {
        Yii::configure($this, $config);
    }
    $this->init();
}

            
__get() public 方法

定义于: yii\base\BaseObject::__get()

返回对象属性的值。

不要直接调用此方法,因为它是一个 PHP 魔术方法,当执行 $value = $object->property; 时会隐式调用。

另见 __set()

public 混合 __get ( $name )
$name string

属性名称

返回值 mixed

属性值

抛出异常 yii\base\UnknownPropertyException

如果属性未定义

抛出异常 yii\base\InvalidCallException

如果属性为只写

                public function __get($name)
{
    $getter = 'get' . $name;
    if (method_exists($this, $getter)) {
        return $this->$getter();
    } elseif (method_exists($this, 'set' . $name)) {
        throw new InvalidCallException('Getting write-only property: ' . get_class($this) . '::' . $name);
    }
    throw new UnknownPropertyException('Getting unknown property: ' . get_class($this) . '::' . $name);
}

            
__isset() 公共方法

定义于: yii\base\BaseObject::__isset()

检查属性是否已设置,即定义且不为 null。

不要直接调用此方法,因为它是一个 PHP 魔术方法,在执行 isset($object->property) 时会隐式调用。

请注意,如果属性未定义,则将返回 false。

另请参阅 https://php.ac.cn/manual/en/function.isset.php

public 布尔值 __isset ( $name )
$name string

属性名称或事件名称

返回值 布尔值

命名的属性是否已设置(不为 null)。

                public function __isset($name)
{
    $getter = 'get' . $name;
    if (method_exists($this, $getter)) {
        return $this->$getter() !== null;
    }
    return false;
}

            
__set() 公共方法

定义于: yii\base\BaseObject::__set()

设置对象属性的值。

不要直接调用此方法,因为它是一个 PHP 魔术方法,在执行 $object->property = $value; 时会隐式调用。

另请参阅 __get()

public void __set ( $name, $value )
$name string

属性名称或事件名称

$value mixed

属性值

抛出异常 yii\base\UnknownPropertyException

如果属性未定义

抛出异常 yii\base\InvalidCallException

如果属性为只读

                public function __set($name, $value)
{
    $setter = 'set' . $name;
    if (method_exists($this, $setter)) {
        $this->$setter($value);
    } elseif (method_exists($this, 'get' . $name)) {
        throw new InvalidCallException('Setting read-only property: ' . get_class($this) . '::' . $name);
    } else {
        throw new UnknownPropertyException('Setting unknown property: ' . get_class($this) . '::' . $name);
    }
}

            
__unset() 公共方法

定义于: yii\base\BaseObject::__unset()

将对象属性设置为 null。

不要直接调用此方法,因为它是一个 PHP 魔术方法,在执行 unset($object->property) 时会隐式调用。

请注意,如果属性未定义,则此方法将不执行任何操作。如果属性为只读,则会抛出异常。

另请参阅 https://php.ac.cn/manual/en/function.unset.php

public void __unset ( $name )
$name string

属性名称

抛出异常 yii\base\InvalidCallException

如果属性为只读。

                public function __unset($name)
{
    $setter = 'set' . $name;
    if (method_exists($this, $setter)) {
        $this->$setter(null);
    } elseif (method_exists($this, 'get' . $name)) {
        throw new InvalidCallException('Unsetting read-only property: ' . get_class($this) . '::' . $name);
    }
}

            
add() 公共方法

添加新的头信息。

如果已存在具有相同名称的标头,则新的标头将附加到它而不是替换它。

public $this add ( $name, $value )
$name string

标头的名称

$value string

标头的值

返回值 $this

集合对象本身

                public function add($name, $value)
{
    $normalizedName = strtolower($name);
    $this->_headers[$normalizedName][] = $value;
    if (!\array_key_exists($normalizedName, $this->_originalHeaderNames)) {
        $this->_originalHeaderNames[$normalizedName] = $name;
    }
    return $this;
}

            
canGetProperty() 公共方法

定义于: yii\base\BaseObject::canGetProperty()

返回一个值,指示属性是否可读。

如果属性可读,则

  • 类具有与指定名称关联的 getter 方法(在这种情况下,属性名称不区分大小写);
  • 类具有与指定名称相同的成员变量(当 $checkVars 为 true 时);

另请参阅 canSetProperty()

public 布尔值 canGetProperty ( $name, $checkVars true )
$name string

属性名称

$checkVars 布尔值

是否将成员变量视为属性

返回值 布尔值

属性是否可读

                public function canGetProperty($name, $checkVars = true)
{
    return method_exists($this, 'get' . $name) || $checkVars && property_exists($this, $name);
}

            
canSetProperty() 公共方法

定义于: yii\base\BaseObject::canSetProperty()

返回一个值,指示属性是否可写。

如果属性可写,则

  • 类具有与指定名称关联的 setter 方法(在这种情况下,属性名称不区分大小写);
  • 类具有与指定名称相同的成员变量(当 $checkVars 为 true 时);

另请参阅 canGetProperty()

public 布尔值 canSetProperty ( $name, $checkVars true )
$name string

属性名称

$checkVars 布尔值

是否将成员变量视为属性

返回值 布尔值

属性是否可写

                public function canSetProperty($name, $checkVars = true)
{
    return method_exists($this, 'set' . $name) || $checkVars && property_exists($this, $name);
}

            
className() 公共静态方法
自 2.0.14 版起已弃用。在 PHP >=5.5 上,请改用 ::class

定义于: yii\base\BaseObject::className()

返回此类的完全限定名称。

public static 字符串 className ( )
返回值 string

此类的完全限定名称。

                public static function className()
{
    return get_called_class();
}

            
count() 公共方法

返回集合中头信息的数量。

此方法是 SPL Countable 接口所必需的。当您使用 count($collection) 时,它将被隐式调用。

public 整数 count ( )
返回值 integer

集合中头信息的数量。

                #[\ReturnTypeWillChange]
public function count()
{
    return $this->getCount();
}

            
fromArray() 公共方法(自 2.0.3 版起可用)

从数组填充头信息集合。

public void fromArray ( 数组 $array )
$array array

要从中填充的标头

                public function fromArray(array $array)
{
    foreach ($array as $name => $value) {
        $this->set($name, $value);
    }
}

            
get() 公共方法

返回命名的头信息。

public 字符串|数组|null get ( $name, $default null, $first true )
$name string

要返回的标头的名称

$default mixed

如果命名标头不存在,则返回的值

$first 布尔值

是否只返回指定名称的第一个标头。如果为 false,则返回指定名称的所有标头。

返回值 字符串|数组|null

命名的标头。如果 $first 为 true,则返回字符串;如果 $first 为 false,则返回数组。

                public function get($name, $default = null, $first = true)
{
    $normalizedName = strtolower($name);
    if (isset($this->_headers[$normalizedName])) {
        return $first ? reset($this->_headers[$normalizedName]) : $this->_headers[$normalizedName];
    }
    return $default;
}

            
getCount() 公共方法

返回集合中头信息的数量。

public integer getCount ( )
返回值 integer

集合中头信息的数量。

                #[\ReturnTypeWillChange]
public function getCount()
{
    return count($this->_headers);
}

            
getIterator() 公共方法

返回用于遍历集合中头信息的迭代器。

此方法是 SPL 接口 IteratorAggregate 所需的。当您使用 foreach 遍历集合时,它将被隐式调用。

public ArrayIterator getIterator ( )
返回值 ArrayIterator

用于遍历集合中头信息的迭代器。

                #[\ReturnTypeWillChange]
public function getIterator()
{
    return new \ArrayIterator($this->_headers);
}

            
has() 公共方法

返回一个值,指示命名的头信息是否存在。

public boolean has ( $name )
$name string

标头的名称

返回值 布尔值

指定的头部是否存在

                public function has($name)
{
    return isset($this->_headers[strtolower($name)]);
}

            
hasMethod() 公共方法

定义于: yii\base\BaseObject::hasMethod()

返回一个值,指示方法是否已定义。

默认实现是调用 php 函数 method_exists()。当您实现 php 魔术方法 __call() 时,您可以重写此方法。

public boolean hasMethod ( $name )
$name string

方法名

返回值 布尔值

方法是否已定义

                public function hasMethod($name)
{
    return method_exists($this, $name);
}

            
hasProperty() 公共方法

定义于: yii\base\BaseObject::hasProperty()

返回一个值,指示属性是否已定义。

如果属性已定义,则:

  • 类具有与指定名称关联的 getter 或 setter 方法(在这种情况下,属性名称不区分大小写);
  • 类具有与指定名称相同的成员变量(当 $checkVars 为 true 时);

另请参阅

public boolean hasProperty ( $name, $checkVars true )
$name string

属性名称

$checkVars 布尔值

是否将成员变量视为属性

返回值 布尔值

属性是否已定义

                public function hasProperty($name, $checkVars = true)
{
    return $this->canGetProperty($name, $checkVars) || $this->canSetProperty($name, false);
}

            
init() 公共方法

定义于: yii\base\BaseObject::init()

初始化对象。

此方法在构造函数结束时调用,在对象使用给定配置初始化之后调用。

public void init ( )

                public function init()
{
}

            
offsetExists() 公共方法

返回是否存在具有指定名称的头信息。

此方法是 SPL 接口 ArrayAccess 所需的。当您使用类似 isset($collection[$name]) 的内容时,它将被隐式调用。

public boolean offsetExists ( $name )
$name string

头部名称

返回值 布尔值

指定的头部是否存在

                #[\ReturnTypeWillChange]
public function offsetExists($name)
{
    return $this->has($name);
}

            
offsetGet() 公共方法

返回具有指定名称的头信息。

此方法是 SPL 接口 ArrayAccess 所需的。当您使用类似 $header = $collection[$name]; 的内容时,它将被隐式调用。这等效于 get()

public string|null offsetGet ( $name )
$name string

头部名称

返回值 string|null

具有指定名称的头部值,如果指定的头部不存在,则为 null。

                #[\ReturnTypeWillChange]
public function offsetGet($name)
{
    return $this->get($name);
}

            
offsetSet() 公共方法

将头信息添加到集合中。

此方法是 SPL 接口 ArrayAccess 所需的。当您使用类似 $collection[$name] = $header; 的内容时,它将被隐式调用。这等效于 add()

public void offsetSet ( $name, $value )
$name string

头部名称

$value string

要添加的头部值

                #[\ReturnTypeWillChange]
public function offsetSet($name, $value)
{
    $this->set($name, $value);
}

            
offsetUnset() 公共方法

移除命名的头信息。

此方法是 SPL 接口 ArrayAccess 所需的。当您使用类似 unset($collection[$name]) 的内容时,它将被隐式调用。这等效于 remove()

public void offsetUnset ( $name )
$name string

头部名称

                #[\ReturnTypeWillChange]
public function offsetUnset($name)
{
    $this->remove($name);
}

            
remove() 公共方法

移除头信息。

public array|null remove ( $name )
$name string

要移除的头部名称。

返回值 array|null

已移除的头部值。如果头部不存在,则返回 null。

                public function remove($name)
{
    $normalizedName = strtolower($name);
    if (isset($this->_headers[$normalizedName])) {
        $value = $this->_headers[$normalizedName];
        unset($this->_headers[$normalizedName], $this->_originalHeaderNames[$normalizedName]);
        return $value;
    }
    return null;
}

            
removeAll() 公共方法

移除所有头信息。

public void removeAll ( )

                public function removeAll()
{
    $this->_headers = [];
    $this->_originalHeaderNames = [];
}

            
set() 公共方法

添加新的头信息。

如果已经存在具有相同名称的头部,则将替换它。

public $this set ( $name, $value '' )
$name string

标头的名称

$value string

标头的值

返回值 $this

集合对象本身

                public function set($name, $value = '')
{
    $normalizedName = strtolower($name);
    $this->_headers[$normalizedName] = (array) $value;
    $this->_originalHeaderNames[$normalizedName] = $name;
    return $this;
}

            
setDefault() 公共方法

仅当头信息尚不存在时设置新的头信息。

如果已经存在具有相同名称的头部,则将忽略新的头部。

public $this setDefault ( $name, $value )
$name string

标头的名称

$value string

标头的值

返回值 $this

集合对象本身

                public function setDefault($name, $value)
{
    $normalizedName = strtolower($name);
    if (empty($this->_headers[$normalizedName])) {
        $this->_headers[$normalizedName][] = $value;
        $this->_originalHeaderNames[$normalizedName] = $name;
    }
    return $this;
}

            
toArray() 公共方法

将集合作为 PHP 数组返回。

public array toArray ( )
返回值 array

集合的数组表示形式。数组键是报头名称,数组值是相应的报头值。

                public function toArray()
{
    return $this->_headers;
}

            
toOriginalArray() 公共方法 (自版本 2.0.45 起可用)

将集合作为 PHP 数组返回,但它使用原始的头信息名称(区分大小写)作为键,而不是像 toArray() 那样使用规范化的头信息名称作为键。

public array toOriginalArray ( )
返回值 array

集合的数组表示形式。

                public function toOriginalArray()
{
    return \array_map(function ($normalizedName) {
        return $this->_headers[$normalizedName];
    }, \array_flip($this->_originalHeaderNames));
}