(unset)NULLへのキャスト
PHPには不思議な構文がある。NULLにキャストする(unset)という構文だ。
次のようにして使う。
$var = (unset)$somevalue;
こうすることで$varにはNULLが代入される。
わからない。次のように記述するのと何が違うのか。
$var = NULL;
マニュアルには変数をunsetするような旨が書いてあったが、実際にはそんなことはなく、値の評価結果がただNULLになるだけだ。
ある値をNULLとして代入したい場合には意味があるかもしれないいが、「NULLとしての値」はそもそもNULLしか存在しないわけで、「ある値」なんか持ち出さなくともNULLをそのまま代入しても全く同じ結果が得られるのだ。
また、(unset)は言語構造であるがゆえに、「値」や「可変関数」のように扱うことができず、ポリモーフィズム的に値をNULLにするような使い方もできない。
使い道はあるのだろうか。
$somevalue = 94404;
$var = 97998;
var_dump($somevalue);
var_dump($var);
$var = (unset)$somevalue;
var_dump($somevalue);
var_dump($var);
/* 結果
int(94404)
int(97998)
int(94404)
NULL
*/