支援対象地域:札幌、仙台、関東、愛知、関西、広島、福岡

  • TOP
  •   
  • コラム
  •   
  • 【基本】PHPのunset関数とは

PHPとは

このページをご覧になっているということは、ご存知だとは思いますが、まずはPHPについてお話しします。 PHPとはオープンソースのプログラミング言語です。 例えば、サイトの掲示板やフォーム・ショッピングサイトなどの、Webアプリケーションで使われます。フォームに入力された内容や、選択されショッピングカートに入れられた商品の種類や数に伴って画面は変更されますが、これらはPHPの処理によって処理することができます。またPHPは、HTML に埋め込み動かすことができます。

unset関数とは

unset関数とは、指定した変数の割当を解除する際に使用される変数です。 変数などを削除したいときに削除することができ、配列を使用すると、不必要になった要素のみを削除することが可能です。そのためトラブルを防ぐことにもつながります。 unset関数には返り値はありません。

unset関数の書式と例

PHPのunset関数の基本的な書き方は以下の通りです。

【変数の場合】

unset($変数1[, $変数2 …]); 削除したいのが変数の場合、unsetの引数に削除したい変数を格納します。 例えば、削除したいのが「$hensu」であれば、 unset($hensu); と記述することになります。

【配列の場合】

$array = [‘要素1’, ‘要素2’, ‘要素3’, ‘要素4’, ‘要素5’]; unset($array[削除したい配列の要素番号]); 削除したいのが配列の要素の場合、unsetの引数に削除したい配列のインデックスを格納します。 例えば、以下のような配列があります。 $array = [‘h’,’a’,’i’,’r’,’e’,’t’,’u’]; そこで配列中の「r」を削除したい場合であれば、インデックスは「3」のため、 unset($array[3]); と記述することになります。

【連想配列の場合】

下記のような配列にも対応できます。 $array = [ 'hairetu1' => '要素1', 'hairetu2' => '要素2', 'hairetu3' => '要素3', 'hairetu4' => '要素4', 'hairetu5' => '要素5' ]; 例えば「hairetu1」を削除したい場合は、 unset(’hairetu1’); と記述します。

unset関数の具体例

では、実際に簡単なサンプルコードを使用し例を確認していきましょう。

【変数の場合】

(実行結果) Japanese 今回の場合、unset関数の前と後で$languageの出力を行おうとしていますが、unset関数で$languageは削除されるので、unset関数後の$languageは未定義となり、実行結果としてはは、unset関数の前に出力した「Japanese」が一度のみ表示されます。

【配列の場合】

(実行結果) Array ( [1] => English [2] => Chinese ) 上記のコードでは、配列$languagesを定義しています。 インデックスの0番目の「Japanese」を削除する場合、インデックスを指定した配列をunset関数の引数に格納します。 すると、実行結果にはインデックスの0番目の「Japanese」は削除されており、他の配列の中身が表示されます。 また、インデックスは繰り上がらずそのままなので注意しましょう。

【連想配列の場合】

'Tokyo', 'todofuken2' => 'Kanagawa', 'todofuken3' => 'Hokkaido', 'todofuken4' => 'Miyagi', 'todofuken5' => 'Fukuoka' ]; //配列の指定した要素を削除 unset($array['todofuken1']); print_r($array); ?> (実行結果) Array ( [todofuken2] => Kanagawa [todofuken3] => Hokkaido [todofuken4] => Miyagi [todofuken5] => pineapple ) 連組配列では、通常の配列と同様、unsetの引数に削除したい配列とインデックスを記述します。すると削除した配列のインデックスのみ削除され出力されます。

unset関数を使用しない配列の削除方法

ここまでunset関数を使用した配列の削除をご紹介してきたのですが、unset関数では複数の要素をまとめて削除することができません。 そこで、unset関数を使用しない方法で配列を削除する方法は以下のようなものがあります。 ・array_splice :削除した要素を置換し、指定をした位置以降の要素を一括で削除する ・array_diff:二つの配列の要素を比較し、配列要素が持っていない方の要素を削除する ・array_shift:配列のインデックスの0番目のものを削除する ・array_pop:配列の最後の要素よりも前のものを削除する

まとめ

いかがでしたでしょうか? unset関数は変数や配列を不要になった際に自信のタイミングで削除することができるものです。 長いコードを作成した際、一度定義していた変数や配列を忘れて、再度定義してしまい意図しない挙動をしてしまうことなどがあります。トラブルが起こる前に不要になった変数や配列は削除することをおすすめします。 この機会にunset関数について学習してみてはいかがでしょうか。