<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # [SplObjectStorage:對象存儲](https://www.php.net/manual/zh/class.splobjectstorage.php#class.splobjectstorage) >[info] 一般用來存儲對象 >[danger] splObjectStorage類提供從對象到數據或忽略數據的對象集的映射。這種雙重目的在許多情況下都是有用的,包括需要唯一地標識對象。 > 用來存儲一組對象的,特別是當你需要唯一標識對象的時候 ``` SplObjectStorage implements Countable , Iterator , Serializable , ArrayAccess { /* 方法 */ //Countable public count ( void ) : int //返回存儲中的對象數量 //Iterator public current ( void ) : object //返回當前存儲的條目 public key ( void ) : int //返回當前迭代對應的索引 public next ( void ) : void //移到下一條目 public rewind ( void ) : void //將迭代器回到第一個存儲的元素 public valid ( void ) : bool //返回當前迭代器條目是否有效 //Serializable public serialize ( void ) : string //序列化存儲 返回表示存儲的字符串 對繼承他的子類使用serialize時觸發 public unserialize ( string $serialized ) : void //反序列化存儲 對繼承他的子類使用unserialize 時觸發 //ArrayAccess public offsetExists ( object $object ) : bool //isset(obj)觸發 判斷存儲對象中是否含有指定的對象 public offsetGet ( object $object ) : mixed //從存儲中獲得一個對象 public offsetSet ( object $object [, mixed $data = NULL ] ) : void //給存儲中的對象賦值 public offsetUnset ( object $object ) : void //從存儲中刪除一個對象 public addAll ( SplObjectStorage $storage ) : void //添加一個指定存儲中所有的對象 public attach ( object $object [, mixed $data = NULL ] ) : void //象存儲的對象中添加一個對象 public contains ( object $object ) : bool //檢查存儲中是否包含特定的對象 public detach ( object $object ) : void //從存儲對象中刪除一個指定的對象 public getHash ( object $object ) : string //給包含的對象計算一個唯一ID public getInfo ( void ) : mixed //返回當前迭代器條目相關的數據 public removeAll ( SplObjectStorage $storage ) : void //從當前存儲中刪除另一個存儲中包含的對象 public removeAllExcept ( SplObjectStorage $storage ) : void //從當前存儲中刪除另一個存儲中不包含的對象 public setInfo ( mixed $data ) : void //設置當前迭代器條目相關的數據 } ``` ## **例子** ``` class Person { public $name; public function __construct(string $name) { $this->name = $name; } } //實例化對象 $zhangsan = new Person('張三'); $lisi = new Person('李四'); $wangwu = new Person('王五'); $zhaoliu = new Person('趙六'); $wangmazi = new Person('王麻子'); //實例化對象存儲 $container = new SplObjectStorage(); //往存儲空間寫入對象 $container->attach($zhangsan); $container->attach($lisi); $container->attach($wangwu); $container->attach($zhaoliu); //統計存儲空間里面的對象的數量 echo "存儲對象數量" . $container->count();//4 echo "<br/>"; //判斷指定的對象是否在存儲空間中 echo "是否包含指定對象:"; var_dump($container->contains($lisi));//true var_dump($container->contains($wangmazi));//false echo "<br/>"; //從存儲中刪除指定對象 echo "刪除指定對象"; $container->detach($wangwu); //查看當前指針所在的索引位置 echo "指針索引" . $container->key();//0 echo "<br/>"; //重置存儲空間指針 $container->rewind(); //校驗當前指針是否有效 var_dump($container->valid());//true //遍歷存儲空間 echo "<pre>"; while ($container->valid()) { //獲取當前指針位置的對象 var_dump($container->current()); //存儲空間指針下移 $container->next(); } ``` ## **例子2** ~~~ /假設有三個Collection對象 $collection1 = new Supor\Collection(['a' => 'aa', 'b' => 'bb']); $collection2 = new Supor\Collection(['c' => 'cc', 'd' => 'dd']); $collection3 = new Supor\Collection(['e' => 'ee', 'f' => 'ff']); $splStorage = new SplObjectStorage(); $splStorage->attach($collection1); //傳入相同的對象會被替代 $splStorage->attach($collection1); $splStorage->attach($collection2); $splStorage->attach($collection3); //統計$splStorage中有多少個對象 $count = $splStorage->count(); var_dump($count); //得到某一對象的哈希值 $hash1 = $splStorage->getHash($collection1); var_dump($hash1); //檢查存儲中是否包含$collection3 $contains3 = $splStorage->contains($collection3); var_dump($contains3); //將指針后移 $splStorage->next(); //讀取移動后的key $key = $splStorage->key(); var_dump($key); //刪除某個對象 $splStorage->detach($collection3); //統計刪除后的數量 $count = $splStorage->count(); var_dump($count); //遍歷$splStorage所有對象 //遍歷前先重置一下指針 $splStorage->rewind(); //當當前迭代器條目返回真時 while ($splStorage->valid()) { //打印當前條目 var_dump($splStorage->current()); //指針后移 $splStorage->next(); } ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看