SplFixedArray クラス
SplFixedArray
&reftitle.intro;
SplFixedArray クラスは配列の主要な機能を提供します。
SplFixedArray と通常の PHP の配列との主な違いは、
SplFixedArray は手動でリサイズしなければならないことと、
整数値で指定した範囲内の添字しか使用できないところです。
これにより、標準の array よりメモリ消費が少なくて済みます。
&reftitle.classsynopsis;
SplFixedArray
implements
IteratorAggregate
ArrayAccess
Countable
JsonSerializable
&Methods;
&reftitle.changelog;
&Version;
&Description;
8.2.0
マジックメソッド
SplFixedArray::__serialize と
SplFixedArray::__unserialize
が、SplFixedArray に追加されました。
8.1.0
SplFixedArray は、
JsonSerializable
を実装するようになりました。
8.0.0
SplFixedArray は、
IteratorAggregate
を実装するようになりました。
これより前のバージョンでは、
Iterator を実装していました。
&reftitle.examples;
SplFixedArray の使用例
setSize(10);
$array[9] = "asdf";
// 配列のサイズを 2 に縮めます
$array->setSize(2);
// 以下は RuntimeException: Index invalid or out of range となります
try {
var_dump($array["non-numeric"]);
} catch(RuntimeException $re) {
echo "RuntimeException: ".$re->getMessage()."\n";
}
try {
var_dump($array[-1]);
} catch(RuntimeException $re) {
echo "RuntimeException: ".$re->getMessage()."\n";
}
try {
var_dump($array[5]);
} catch(RuntimeException $re) {
echo "RuntimeException: ".$re->getMessage()."\n";
}
?>
]]>
&example.outputs;
&reference.spl.entities.splfixedarray;