【PHP8.x】offsetUnsetメソッドの使い方

offsetUnsetメソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

『offsetUnsetメソッドは、RecursiveArrayIteratorオブジェクトが内部で保持している配列から、指定したオフセット(キー)の要素を削除する処理を実行するメソッドです。このメソッドは、PHPのArrayAccessインターフェースを実装することによって提供されます。ArrayAccessインターフェースは、オブジェクトを通常の配列と同じように角括弧 [] を用いてアクセス可能にするための仕組みです。プログラマが unset($iterator['some_key']) のようなコードを記述してイテレータが持つ要素を削除しようとすると、PHPの内部ではこのoffsetUnsetメソッドが自動的に呼び出されます。引数 $offset には、削除対象となる要素のキーまたはインデックスを指定します。このメソッドが実行されると、RecursiveArrayIteratorが操作している配列から、指定されたキーに対応する要素が恒久的に削除されます。このメソッド自体は何も値を返さない(返り値の型は void)ため、処理の成功失敗を返り値で判断することはできません。この機能により、イテレータオブジェクトを通して、元の配列を直接的かつ直感的に変更することが可能になります。

構文(syntax)

1<?php
2
3// public RecursiveArrayIterator::offsetUnset(mixed $key): void
4
5$array = [
6    'first' => 'apple',
7    'second' => 'banana',
8    'third' => 'cherry'
9];
10
11$iterator = new RecursiveArrayIterator($array);
12
13// 'second' キーを持つ要素を削除します。
14// offsetUnset() は unset() を使って呼び出されます。
15unset($iterator['second']);
16
17var_dump(iterator_to_array($iterator));

引数(parameters)

mixed $offset

  • mixed $offset: アンセットする要素のオフセットを指定します

戻り値(return)

戻り値なし

戻り値はありません