在PHP 5.4中,我有一个SplObjectStorage实例,我将对象与一些额外的元数据相关联.然后我需要遍历SplObjectStorage的实例并检索与当前键关联的对象.我试图使用SplObjectStorage :: key,但这不起作用(但可能在PHP 5.5中有效).
这是我试图做的简化版本:
$storage = new SplObjectStorage;
$foo = (object)['foo' => 'bar'];
$storage->attach($foo, ['room' => 'bar'];
foreach ($storage as $value) {
print_r($value->key());
}
Run Code Online (Sandbox Code Playgroud)
我真正需要的只是某种方法来检索与密钥相关联的实际对象.据我所知,甚至不可能手动创建一个带有数字索引和SplObjectStorage指向的对象的单独索引数组.
这样做:
$storage = new SplObjectStorage;
$foo = (object)['foo' => 'bar'];
$storage->attach($foo, ['room' => 'bar']);
foreach ($storage as $value) {
$obj = $storage->current(); // current object
$assoc_key = $storage->getInfo(); // return, if exists, associated with cur. obj. data; else NULL
var_dump($obj);
var_dump($assoc_key);
}
Run Code Online (Sandbox Code Playgroud)
查看更多SplObjectStorage :: current和SplObjectStorage :: getInfo.
| 归档时间: |
|
| 查看次数: |
3631 次 |
| 最近记录: |