This method, SplObjectStorage::getInfo() does NOT exist on PHP 5.2.13.
However, PHP 5.3.2 and above does have it. To find out yourself, use this snippet.
$> php -r "print_r(get_class_methods(new SplObjectStorage()));"
Results for PHP 5.2.13
====
Array
(
[0] => attach
[1] => detach
[2] => contains
[3] => count
[4] => rewind
[5] => valid
[6] => key
[7] => current
[8] => next
[9] => unserialize
[10] => serialize
)
Results for PHP 5.3.2
=====
Array
(
[0] => attach
[1] => detach
[2] => contains
[3] => addAll
[4] => removeAll
[5] => getInfo
[6] => setInfo
[7] => count
[8] => rewind
[9] => valid
[10] => key
[11] => current
[12] => next
[13] => unserialize
[14] => serialize
[15] => offsetExists
[16] => offsetSet
[17] => offsetUnset
[18] => offsetGet
)
SplObjectStorage::getInfo
(PHP 5 >= 5.3.0)
SplObjectStorage::getInfo — イテレータの現在のエントリに関連づけられたデータを返す
パラメータ
この関数にはパラメータはありません。
返り値
イテレータの現在の位置に関連づけられたデータを返します。
例
例1 SplObjectStorage::getInfo() の例
<?php
$s = new SplObjectStorage();
$o1 = new StdClass;
$o2 = new StdClass;
$s->attach($o1, "d1");
$s->attach($o2, "d2");
$s->rewind();
while($s->valid()) {
$index = $s->key();
$object = $s->current(); // current($s) と同等
$data = $s->getInfo();
var_dump($object);
var_dump($data);
$s->next();
}
?>
上の例の出力は、 たとえば以下のようになります。
object(stdClass)#2 (0) {
}
string(2) "d1"
object(stdClass)#3 (0) {
}
string(2) "d2"
参考
- SplObjectStorage::current() - 現在のストレージの要素を返す
- SplObjectStorage::rewind() - イテレータをストレージの最初の要素に巻き戻す
- SplObjectStorage::key() - イテレータの現在位置を返す
- SplObjectStorage::next() - 次のエントリに移動する
- SplObjectStorage::valid() - イテレータの現在のエントリが有効かどうかを返す
- SplObjectStorage::setInfo() - イテレータの現在のエントリに関連づけるデータを設定する
Ye Wang
27-Sep-2010 11:53
