関数の概要
PHPの unset は、変数や配列の特定の要素を削除するための言語構造(関数のように見えますが実際は文法構造)です。これにより、その変数や要素はメモリから解放され、以降アクセスすると未定義となります。特に変数を意図的に削除したい場合や、配列の一部を消したい場合に使われます。
パラメータの説明
var: 削除したい変数や配列要素を指定します。複数指定することも可能です。
戻り値
unset は戻り値を返しません。つまり値を返すことはなく、呼び出した結果として削除が行われます。
使用例
基本的な使い方
<?php
$a = "Hello";
unset($a);
var_dump(isset($a)); // bool(false)
?>
変数 $a を unset で削除したため、以降 $a は存在しません。
配列の特定の要素を削除する
<?php
$array = ['foo' => 1, 'bar' => 2, 'baz' => 3];
unset($array['bar']);
var_dump($array);
// 結果: ['foo' => 1, 'baz' => 3]
?>
配列のキー 'bar' の要素のみを削除できます。配列全体が消えるわけではありません。
複数の変数を一度に削除する
<?php
$x = 10;
$y = 20;
$z = 30;
unset($x, $y);
var_dump(isset($x), isset($y), isset($z)); // bool(false) bool(false) bool(true)
?>
複数の変数をまとめて削除することも可能です。削除された変数は未定義となります。
関連する関数
isset: 変数がセットされていて未定義でないか確認するempty: 変数が空かどうかを確認するunsetと組み合わせて使うことが多い
まとめ
unset は、PHPで不要になった変数や配列の要素を削除し、メモリの無駄遣いを防いだり、プログラムの状態管理を明確にしたりするために非常に役立ちます。戻り値はないため、削除後の変数の存在は isset などで確認しましょう。実務ではスコープの管理や配列操作の際によく使われる基本かつ重要な機能です。
