I just noticed PHP has an type casting to (unset), and I’m wondering what it could possibly be used for. It doesn’t even really unset the variable, it just casts it to NULL, which means that (unset)$anything should be exactly the same as simply writing NULL.
# Really unsetting the variable results in a notice when accessing it
nadav@shesek:~$ php -r '$foo = 123; unset($foo); echo $foo;'
PHP Notice: Undefined variable: foo in Command line code on line 1
PHP Stack trace:
PHP 1. {main}() Command line code:0
# (unset) just set it to NULL, and it doesn't result in a notice
nadav@shesek:~$ php -r '$foo = 123; $foo=(unset)$foo; echo $foo;'
Anyone ever used it for anything? I can’t think of any possible usage for it…
Added:
Main idea of question is:
What is reason to use (unset)$smth instead of just NULL?
As far as I can tell, there’s really no point to using
over
The
(unset)$yalways evaluates to null, and unlike callingunset($y), the cast doesn’t affect$yat all.The only difference is that using the cast will still generate an “undefined variable” notice if
$yis not defined.There’s a PHP bug about a related issue. The bug is actually about a (in my mind) misleading passage elsewhere in the documentation which says:
And that clearly isn’t the case.