成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

【SPL標(biāo)準(zhǔn)庫專題(10)】Datastructures:SplObjectStorage

ConardLi / 1382人閱讀

摘要:是用來存儲(chǔ)一組對(duì)象的,特別是當(dāng)你需要唯一標(biāo)識(shí)對(duì)象的時(shí)候。類實(shí)現(xiàn)了四個(gè)接口??蓪?shí)現(xiàn)統(tǒng)計(jì)迭代序列化數(shù)組式訪問等功能。

PHP SPL SplObjectStorage是用來存儲(chǔ)一組對(duì)象的,特別是當(dāng)你需要唯一標(biāo)識(shí)對(duì)象的時(shí)候。
PHP SPL SplObjectStorage類實(shí)現(xiàn)了Countable,Iterator,Serializable,ArrayAccess四個(gè)接口。可實(shí)現(xiàn)統(tǒng)計(jì)、迭代、序列化、數(shù)組式訪問等功能。

類摘要
SplObjectStorage implements Countable , Iterator , Serializable , ArrayAccess {
    /* 方法 */
    public void addAll ( SplObjectStorage $storage )
    // ↓↓加入對(duì)象
    public void attach ( object $object [, mixed $data = NULL ] )
    // ↓↓檢查是否包含指定對(duì)象
    public bool contains ( object $object )
    // ↓↓移除對(duì)象
    public void detach ( object $object )
    // ↓↓返回一串哈希值,每次調(diào)用的時(shí)候該串哈希值都在改變
    public string getHash ( object $object )
    public mixed getInfo ( void )
    public int count ( void )
    public object current ( void )
    public int key ( void )
    public void next ( void )
    public bool offsetExists ( object $object )
    public mixed offsetGet ( object $object )
    public void offsetSet ( object $object [, mixed $data = NULL ] )
    public void offsetUnset ( object $object )
    public void removeAll ( SplObjectStorage $storage )
    public void removeAllExcept ( SplObjectStorage $storage )
    public void rewind ( void )
    public string serialize ( void )
    public void setInfo ( mixed $data )
    public void unserialize ( string $serialized )
    public bool valid ( void )
}
Example
# Example1:
class A {
  public $i;
  public function __construct($i) {
    $this->i = $i;
  }
}

$a1 = new A(1);
$a2 = new A(2);
$a3 = new A(3);
$a4 = new A(4);

$container = new SplObjectStorage();

//SplObjectStorage::attach 添加對(duì)象到Storage中
$container->attach($a1);
$container->attach($a2);
$container->attach($a3);

//SplObjectStorage::detach 將對(duì)象從Storage中移除
$container->detach($a2);

//SplObjectStorage::contains用于檢查對(duì)象是否存在Storage中
var_dump($container->contains($a1)); //true
var_dump($container->contains($a4)); //false

//遍歷
$container->rewind();
while($container->valid()) {
  var_dump($container->current());
  var_dump($container->getInfo());
  $container->next();
}
參考

http://php.net/manual/zh/clas...

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/31586.html

相關(guān)文章

  • SPL標(biāo)準(zhǔn)專題(7)】DatastructuresSplPriorityQueue

    摘要:普通的隊(duì)列是一種先進(jìn)先出的數(shù)據(jù)結(jié)構(gòu),元素在隊(duì)列尾追加,而從隊(duì)列頭取出。在優(yōu)先隊(duì)列中,元素被賦予優(yōu)先級(jí)。當(dāng)訪問元素時(shí),具有最高優(yōu)先級(jí)的元素最先取出。優(yōu)先隊(duì)列具有最高級(jí)先出,的行為特征。 普通的隊(duì)列是一種先進(jìn)先出的數(shù)據(jù)結(jié)構(gòu),元素在隊(duì)列尾追加,而從隊(duì)列頭取出。在優(yōu)先隊(duì)列中,元素被賦予優(yōu)先級(jí)。當(dāng)訪問元素時(shí),具有最高優(yōu)先級(jí)的元素最先取出。優(yōu)先隊(duì)列具有最高級(jí)先出 (largest-in,first...

    mindwind 評(píng)論0 收藏0
  • SPL標(biāo)準(zhǔn)專題(9)】DatastructuresSplFixedArray

    摘要:主要是處理數(shù)組相關(guān)的主要功能,與普通不同的是,它是固定長(zhǎng)度的,且以數(shù)字為鍵名的數(shù)組,優(yōu)勢(shì)就是比普通的數(shù)組處理更快。類摘要方法導(dǎo)入數(shù)組,返回對(duì)象把對(duì)象數(shù)組導(dǎo)出為真正的數(shù)組由于是定長(zhǎng)數(shù)組,所以超過定長(zhǎng)就會(huì)拋出異常。 SplFixedArray主要是處理數(shù)組相關(guān)的主要功能,與普通php array不同的是,它是固定長(zhǎng)度的,且以數(shù)字為鍵名的數(shù)組,優(yōu)勢(shì)就是比普通的數(shù)組處理更快。 類摘要 SplF...

    lindroid 評(píng)論0 收藏0
  • SPL標(biāo)準(zhǔn)專題(8)】DatastructuresSplHeap & SplMaxHe

    摘要:堆就是為了實(shí)現(xiàn)優(yōu)先隊(duì)列而設(shè)計(jì)的一種數(shù)據(jù)結(jié)構(gòu),它是通過構(gòu)造二叉堆二叉樹的一種實(shí)現(xiàn)。根節(jié)點(diǎn)最大的堆叫做最大堆或大根堆,根節(jié)點(diǎn)最小的堆叫做最小堆或小根堆。二叉堆還常用于排序堆排序。 堆(Heap)就是為了實(shí)現(xiàn)優(yōu)先隊(duì)列而設(shè)計(jì)的一種數(shù)據(jù)結(jié)構(gòu),它是通過構(gòu)造二叉堆(二叉樹的一種)實(shí)現(xiàn)。根節(jié)點(diǎn)最大的堆叫做最大堆或大根堆,根節(jié)點(diǎn)最小的堆叫做最小堆或小根堆。二叉堆還常用于排序(堆排序)。 showImg(...

    chadLi 評(píng)論0 收藏0
  • SPL標(biāo)準(zhǔn)專題(6)】DatastructuresSplStack & SplQueu

    摘要:這兩個(gè)類都是繼承自,分別派生自的堆棧模式和隊(duì)列模式所以放在一起來介紹堆棧類摘要方法重寫了父類,固定為堆棧模式,然后此處只需要傳或者。 這兩個(gè)類都是繼承自SplDoublyLinkedList,分別派生自SplDoublyLinkedList的堆棧模式和隊(duì)列模式;所以放在一起來介紹; 堆棧SplStack showImg(https://segmentfault.com/img/remo...

    TigerChain 評(píng)論0 收藏0
  • SPL標(biāo)準(zhǔn)專題(5)】DatastructuresSplDoublyLinkedList

    摘要:簡(jiǎn)述雙鏈表是一種重要的線性存儲(chǔ)結(jié)構(gòu),對(duì)于雙鏈表中的每個(gè)節(jié)點(diǎn),不僅僅存儲(chǔ)自己的信息,還要保存前驅(qū)和后繼節(jié)點(diǎn)的地址。 簡(jiǎn)述 雙鏈表是一種重要的線性存儲(chǔ)結(jié)構(gòu),對(duì)于雙鏈表中的每個(gè)節(jié)點(diǎn),不僅僅存儲(chǔ)自己的信息,還要保存前驅(qū)和后繼節(jié)點(diǎn)的地址。 showImg(https://segmentfault.com/img/remote/1460000019231932?w=813&h=236); 類摘要 ...

    luckyw 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<