• ベストアンサー

PHP セッション unset と null

unset($_SESSION["hoge"]); $_SESSION["hoge"] = null; 2つの挙動は同じでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • 4017B
  • ベストアンサー率73% (1336/1814)
回答No.1

php自体の環境設定にもよりますが、実際の運用上はほぼ同じ意味になりますね。ただしプログラム内部的には明確に違う処理が成されているため、安易に同じモノだと覚えないでください。 unset() は変数や配列の存在自体を抹消削除する関数であり、本来であれば Undefined を返すのが正しい挙動であると思われますが…php上では何故か NULL が代替値として返されます。 従って不要になった変数を削除する際に、unset() の代わりに $hoge = null; を行う様に記述された解説書などもありますが。しかしこれは明確に誤りであり、unset() と null は全く別の概念であると学習すべきです。 - 参考リンク:NULLと未定義の違い https://qiita.com/mpyw/items/0a4ea0bc9a695da33f0c

muuming2001
質問者

お礼

ああ 確かにunset だと undefinedの状態に戻りますね。 ありがとうございます。

関連するQ&A