Splobjectstorage 是spl标准库中的数据对象容器,用来存储一组对象。特别是当需要唯一标识对象的时候。
class Person
{
public $name;
public function __construct(string $name)
{
$this->name = $name;
}
}
//实例化对象
$zhangsan = new Person('张三');
$lisi = new Person('李四');
$wangwu = new Person('王五');
$zhaoliu = new Person('赵六');
//实例化对象存储
$container = new SplObjectStorage();
//往存储空间写入对象
$container->attach($zhangsan);
$container->attach($lisi);
$container->attach($wangwu);
$container->attach($zhaoliu);
//统计存储空间里面的对象的数量
echo "存储对象数量" . $container->count() . PHP_EOL;
//判断指定的对象是否在存储空间中
echo "是否包含指定对象:";
var_dump($container->contains($lisi)) . PHP_EOL;
$lisi2 = new Person("李四");
echo "指定新对象:";
var_dump($container->contains($lisi2)) . PHP_EOL;
echo "删除指定对象";
$container->detach($wangwu);
echo PHP_EOL;
//查看当前指针所在的索引位置
echo "指针索引" . $container->key() . PHP_EOL;
while ($container->valid()) {
//获取当前指针位置的对象
$object = $container->current();
var_dump($object);
echo "对象名称:" . $object->name . PHP_EOL;
//存储空间指针下移
$container->next();
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。