Как сбросить переменную в NULL в PHP? - PullRequest
20 голосов
/ 06 декабря 2009

Я могу использовать isset($var), чтобы проверить, не определена ли переменная или равна нулю. (например, проверка, если переменная сеанса была установлена ​​ранее)

Но после установки переменной, как мне восстановить ее по умолчанию, так что isset($var) возвращает false?

Ответы [ 4 ]

37 голосов
/ 06 декабря 2009

Использование unset($var);

21 голосов
/ 06 декабря 2009

Как сказал nacmartin, unset будет "неопределать" переменную. Вы также можете установить переменную в null, однако, так отличаются два подхода:

$x = 3; $y = 4;
isset($x);  // true;
isset($y);  // true;

$x = null;
unset($y);
isset($x);  // false
isset($y);  // false

echo $x;  // null
echo $y;  // PHP Notice (y not defined)
16 голосов
/ 06 декабря 2009

Дальнейшее объяснение:

Хотя переменная может быть нулевой или не нулевой, можно сказать, что переменная также установлена ​​или не установлена.

чтобы установить переменную на ноль, вы просто

$var = null;

Это сделает $var нулевым , эквивалентным false, 0 и так далее. Вы по-прежнему сможете получить переменную из $GLOBALS['var'], поскольку она все еще определена / установлена. Однако, чтобы удалить переменную из глобального и / или локального пространства имен, вы используете

unset($var);

Это сделает $var не установленным вообще. Вы не сможете найти в $GLOBALS.

1 голос
/ 06 декабря 2009

Кроме того, вы можете установить переменную на null:

<?php

$v= 'string';
var_dump(isset($v));
$v= null;
var_dump(isset($v));

?>
...