- ベストアンサー
PHP セッション unset と null
unset($_SESSION["hoge"]); $_SESSION["hoge"] = null; 2つの挙動は同じでしょうか?
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
php自体の環境設定にもよりますが、実際の運用上はほぼ同じ意味になりますね。ただしプログラム内部的には明確に違う処理が成されているため、安易に同じモノだと覚えないでください。 unset() は変数や配列の存在自体を抹消削除する関数であり、本来であれば Undefined を返すのが正しい挙動であると思われますが…php上では何故か NULL が代替値として返されます。 従って不要になった変数を削除する際に、unset() の代わりに $hoge = null; を行う様に記述された解説書などもありますが。しかしこれは明確に誤りであり、unset() と null は全く別の概念であると学習すべきです。 - 参考リンク:NULLと未定義の違い https://qiita.com/mpyw/items/0a4ea0bc9a695da33f0c
お礼
ああ 確かにunset だと undefinedの状態に戻りますね。 ありがとうございます。