首頁 >php教程 >php手册 >PHP 高级编程(5/5)

PHP 高级编程(5/5)

WBOY
WBOY原創
2016-06-13 09:33:081110瀏覽

ArrayAccess接口

ArrayAccess接口是对象的行为看起来像个数组,定义了四个方法。接口概要如下:

<span>ArrayAccess {
</span><span>/*</span><span> Methods </span><span>*/</span>
<span>abstract</span> <span>public</span><span> boolean offsetExists ( mixed $offset )
</span><span>abstract</span> <span>public</span><span> mixed offsetGet ( mixed $offset )
</span><span>abstract</span> <span>public</span> <span>void</span><span> offsetSet ( mixed $offset , mixed $value )
</span><span>abstract</span> <span>public</span> <span>void</span><span> offsetUnset ( mixed $offset )
}</span>

ArrayAccess接口自身没有提供计算书组重元素数量的功能,如果要计算数量可以通过实现Countble接口。这个接口包含了一个count()方法,并且返回元素的数量。

<?<span>php

</span><span>class</span><span> MyArray implements ArrayAccess
{
    </span><span>protected</span><span> $_arr;
    
    </span><span>public</span><span> function __construct()
    {
        $</span><span>this</span>->_arr =<span> array();
    }

    </span><span>public</span><span> function offsetSet($offset, $value)
    {
        $</span><span>this</span>->_arr[$offset] =<span> $value;
    }

    </span><span>public</span><span> function offsetGet($offset)
    {
        </span><span>return</span> $<span>this</span>-><span>_arr[$offset];
    }


    </span><span>public</span><span> function offsetExists($offset)
    {
        </span><span>return</span> array_key_exists($offset, $<span>this</span>-><span>_arr);
    }

    </span><span>public</span><span> function offsetUnset($offset)
    {
        unset($</span><span>this</span>-><span>_arr[$offset]);
    }
}

$MyArray </span>= <span>new</span><span> MyArray();
$MyArray[</span><span>'</span><span>first</span><span>'</span>] = <span>'</span><span>test</span><span>'</span><span>;
echo $MyArray[</span><span>'</span><span>first</span><span>'</span><span>];
unset($MyArray[</span><span>'</span><span>first</span><span>'</span><span>]);

</span>?>

ArratObject 类介绍

ArrayObject 类是一个 ArrayAccess 接口的实现类,它提供了迭代功能,以及很多用来排序和处理数据的非常有用的方法。

ArrayObject <span>implements</span> IteratorAggregate , ArrayAccess , Serializable ,<span> Countable {
</span><span>/*</span><span> Constants </span><span>*/</span>
<span>const</span> <span>integer</span> STD_PROP_LIST = 1<span> ;
</span><span>const</span> <span>integer</span> ARRAY_AS_PROPS = 2<span> ;
</span><span>/*</span><span> Methods </span><span>*/</span>
<span>public</span> __construct ([ <span>mixed</span> <span>$input</span> = [] [, int <span>$flags</span> = 0 [, <span>string</span> <span>$iterator_class</span> = "ArrayIterator"<span> ]]] )
</span><span>public</span> void append ( <span>mixed</span> <span>$value</span><span> )
</span><span>public</span> void <span>asort</span><span> ( void )
</span><span>public</span> int <span>count</span><span> ( void )
</span><span>public</span> <span>array</span> exchangeArray ( <span>mixed</span> <span>$input</span><span> )
</span><span>public</span> <span>array</span><span> getArrayCopy ( void )
</span><span>public</span><span> int getFlags ( void )
</span><span>public</span><span> ArrayIterator getIterator ( void )
</span><span>public</span> <span>string</span><span> getIteratorClass ( void )
</span><span>public</span> void <span>ksort</span><span> ( void )
</span><span>public</span> void <span>natcasesort</span><span> ( void )
</span><span>public</span> void <span>natsort</span><span> ( void )
</span><span>public</span> bool offsetExists ( <span>mixed</span> <span>$index</span><span> )
</span><span>public</span> <span>mixed</span> offsetGet ( <span>mixed</span> <span>$index</span><span> )
</span><span>public</span> void offsetSet ( <span>mixed</span> <span>$index</span> , <span>mixed</span> <span>$newval</span><span> )
</span><span>public</span> void offsetUnset ( <span>mixed</span> <span>$index</span><span> )
</span><span>public</span> <span>string</span> <span>serialize</span><span> ( void )
</span><span>public</span> void setFlags ( int <span>$flags</span><span> )
</span><span>public</span> void setIteratorClass ( <span>string</span> <span>$iterator_class</span><span> )
</span><span>public</span> void <span>uasort</span> ( callable <span>$cmp_function</span><span> )
</span><span>public</span> void <span>uksort</span> ( callable <span>$cmp_function</span><span> )
</span><span>public</span> void <span>unserialize</span> ( <span>string</span> <span>$serialized</span><span> )
}</span>
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn