数组对象

ArrayObject

这个类允许像数组一样使用对象。

ArrayObject::append — 追加新的值作为最后一个元素。
ArrayObject::asort — Sort the entries by value
ArrayObject::__construct — Construct a new array object
ArrayObject::count — 统计 ArrayObject 内 public 属性的数量
ArrayObject::exchangeArray — Exchange the array for another one
ArrayObject::getArrayCopy — Creates a copy of the ArrayObject
ArrayObject::getFlags — Gets the behavior flags
ArrayObject::getIterator — Create a new iterator from an ArrayObject instance
ArrayObject::getIteratorClass — Gets the iterator classname for the ArrayObject
ArrayObject::ksort — Sort the entries by key
ArrayObject::natcasesort — Sort an array using a case insensitive "natural order" algorithm
ArrayObject::natsort — Sort entries using a "natural order" algorithm
ArrayObject::offsetExists — Returns whether the requested index exists
ArrayObject::offsetGet — Returns the value at the specified index
ArrayObject::offsetSet — 为指定索引设定新的值
ArrayObject::offsetUnset — Unsets the value at the specified index
ArrayObject::serialize — Serialize an ArrayObject
ArrayObject::setFlags — Sets the behavior flags
ArrayObject::setIteratorClass — Sets the iterator classname for the ArrayObject
ArrayObject::uasort — Sort the entries with a user-defined comparison function and maintain key association
ArrayObject::uksort — Sort the entries by keys using a user-defined comparison function
ArrayObject::unserialize — Unserialize an ArrayObject

ArrayObject 类实现了四个接口:

  • IteratorAggregate:聚合式迭代器接口,创建外部迭代器的接口。
  • ArrayAccess:提供像访问数组一样访问对象的能力的接口。
  • Serializable:序列化接口,实现此接口的类将不再支持 sleep() 和 wakeup()。不论何时,只要有实例需要被序列化,serialize 方法都将被调用。它将不会调用 destruct() 或有其他影响,除非程序化地调用此方法。当数据被反序列化时,类将被感知并且调用合适的 unserialize() 方法而不是调用 construct()。如果需要执行标准的构造器,应该在这个方法中进行处理。
  • Countable:类实现 Countable 可被用于 count() 函数.
IteratorAggregate extends Traversable {
    abstract public getIterator ( void ) : Traversable
}

ArrayAccess {
    abstract public offsetExists ( mixed $offset ) : boolean
    abstract public offsetGet ( mixed $offset ) : mixed
    abstract public offsetSet ( mixed $offset , mixed $value ) : void
    abstract public offsetUnset ( mixed $offset ) : void
}

Serializable {
    abstract public serialize ( void ) : string
    abstract public unserialize ( string $serialized ) : mixed
}

Countable {
    abstract public count ( void ) : int
}

ArrayIterator

这个迭代器允许在遍历数组和对象时删除和更新值与键,实际上是对ArrayObject类的补充,为后者提供遍历功能。

当你想多次遍历相同数组时你需要实例化 ArrayObject,然后让这个实例创建一个 ArrayIteratror 实例。 当你想遍历相同数组时多次你需要实例 ArrayObject 并且让这个实例创建一个 ArrayIteratror 实例,然后使用foreach 或者 手动调用 getIterator() 方法。

ArrayIterator implements ArrayAccess , SeekableIterator , Countable , Serializable {
    /* 常量 */
    const integer STD_PROP_LIST = 1 ;
    const integer ARRAY_AS_PROPS = 2 ;
    /* 方法 */
    public append ( mixed $value ) : void //添加新元素
    public asort ( void ) : void
    public __construct ([ mixed $array = array() [, int $flags = 0 ]] )
    public count ( void ) : int //返回迭代器中元素个数
    public current ( void ) : mixed //返回当前数组元素
    public getArrayCopy ( void ) : array
    public getFlags ( void ) : int
    public key ( void ) : mixed //返回当前数组key
    public ksort ( void ) : void
    public natcasesort ( void ) : void
    public natsort ( void ) : void
    public next ( void ) : void //指向下个数组元素
    public offsetExists ( mixed $index ) : bool //判断提交的值是否存在
    public offsetGet ( mixed $index ) : mixed //指定 name 获取值
    public offsetSet ( mixed $index , mixed $newval ) : void //修改指定 name 的值
    public offsetUnset ( mixed $index ) : void //删除数据
    public rewind ( void ) : void //重置数组指针到头
    public seek ( int $position ) : void //查找数组中某一位置
    public serialize ( void ) : string
    public setFlags ( string $flags ) : void
    public uasort ( callable $cmp_function ) : void
    public uksort ( callable $cmp_function ) : void
    public unserialize ( string $serialized ) : string
    public valid ( void ) : bool  //检查数组是否还包含其他元素
}

SeekableIterator:Seekable迭代器。

SeekableIterator extends Iterator {
    abstract public seek ( int $position ) : void
    abstract public Iterator::current ( void ) : mixed
    abstract public Iterator::key ( void ) : scalar
    abstract public Iterator::next ( void ) : void
    abstract public Iterator::rewind ( void ) : void
    abstract public Iterator::valid ( void ) : bool
}
powered by Gitbook更新时间: 2021-05-27 10:52:40

results matching ""

    No results matching ""