Кто-нибудь когда-либо использовал отладку PHP (unset)?

Я просто заметил, что PHP имеет тип casting (unset) , и мне интересно, для чего его можно было бы использовать. Он даже не отключает переменную, она просто отбрасывает ее в NULL, что означает, что (unset)$anything должно быть точно таким же, как просто писать 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;' с # 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;' 

Кто-нибудь когда-либо использовал его для чего-нибудь? Я не могу придумать для этого никакого использования …

Добавлено:
Основная идея вопроса:
Какая причина использовать (unset)$smth вместо просто NULL ?

Насколько я могу судить, нет смысла использовать

 $x = (unset)$y; 

над

 $x = NULL; 

(unset)$y всегда оценивается как null, и в отличие от вызова unset($y) приведение не влияет на $y вообще.

Единственное различие заключается в том, что использование приведения все равно будет генерировать уведомление «неопределенной переменной», если $y не определено.

Есть ошибка PHP о связанной проблеме. Ошибка на самом деле о (в моем сознании) вводящем в заблуждение прохождении в другом месте документации, которая гласит:

Приведение переменной в нуль удаляет переменную и отменяет ее значение.

И это явно не так.

Я бы предположил (зная PHP, и это новно … интересный выбор для разных вещей, я могу быть совершенно неправ), что это так, что значение не нуждается в настройке для var. Для точной причины использовать его для кода, я не могу придумать пример, но что-то вроде этого:

 $foo = bar((unset) baz()); 

Там вы хотите или должны иметь нуль в качестве аргумента для бара и все равно нужно вызвать baz() . Синтаксис функции изменился, и кто-то сделал исправление утиной ленты, как то, что кажется горячим с PHP.

Поэтому я бы сказал: нет причин использовать его в хорошо продуманной архитектуре; могут быть использованы для решений, которые настолько неясны, что я голосовал против них на первом месте.

Например, его можно использовать как это

 function fallback() { // some stuff here return 'zoo'; } var_dump(false ? 'foo' : fallback()); // zoo var_dump(false ? 'foo' : (unset) fallback()); // null 

Даже если fallback() возвращает «zoo» (unset) , это значение будет очищено.