当前位置: 首页 > 后端技术 > PHP

[SPL标准库专题(10)]Datastructures-SplObjectStorage

时间:2023-03-29 15:29:15 PHP

PHPSPLSplObjectStorage用于存储一组对象,特别是当你需要唯一标识对象时。PHPSPLSplObjectStorage类实现了四个接口:Countable、Iterator、Serializable和ArrayAccess。可以实现统计、迭代、序列化、数组访问等功能。类摘要SplObjectStorageimplementsCountable,Iterator,Serializable,ArrayAccess{/*方法*/publicvoidaddAll(SplObjectStorage$storage)//↓↓添加对象publicvoidattach(object$object[,mixed$data=NULL])//↓↓检查是否包含指定对象publicboolcontains(object$object)//↓↓移除对象publicvoiddetach(object$object)//↓↓返回一串hash值,该hash值的字符串是每次调用都在改变publicstringgetHash(object$object)publicmixedgetInfo(void)publicintcount(void)publicobjectcurrent(void)publicintkey(void)publicvoidnext(void)publicbooloffsetExists(object$object)publicmixedoffsetGet(object$object)publicvoidoffsetSet(object$object[,mixed$data=NULL])publicvoidoffsetUnset(object$object)publicvoidremoveAll(SplObjectStorage$storage)publicvoidremoveAllExcept(SplObjectvoidwin$storage)public(无效)公共字符串序列号大小(无效)publicvoidsetInfo(mixed$data)publicvoidunserialize(string$serialized)publicboolvalid(void)}Example#示例1:classA{public$i;公共函数__construct($i){$this->i=$i;}}$a1=newA(1);$a2=newA(2);$a3=newA(3);$a4=newA(4);$container=newSplObjectStorage();//SplObjectStorage::attach添加对象到Storage$container->attach($a1);$container->attach($a2);$container->attach($a3);//SplObjectStorage::detach从StorageExcept$container-中移动对象>detach($a2);//SplObjectStorage::contains用于检查Storage中是否存在对象var_dump($container->contains($a1));//truevar_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...