2009-12-06 9 views
16

Mogę użyć isset($var), aby sprawdzić, czy zmienna nie jest zdefiniowana lub zerowa. (np. sprawdzanie, czy zmienna sesji została wcześniej ustawiona)Jak zresetować zmienną na NULL w PHP?

Ale po ustawieniu zmiennej, jak mogę zresetować ją do domyślnej tak, że isset($var) zwraca false?

Odpowiedz

31

Zastosowanie unset($var);

+0

Czy to usuwa odniesienie * i * śmieci zbiera również pamięć? –

+4

@Jeremy - tak to robi – mauris

1

Ponadto, można ustawić zmienną do null:

<?php 

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

?> 
+0

Dla prostej '$ variable', ustawienie jej na' null' jest lepsze dla moich celów. – Pathros

19

Jak nacmartin powiedział unset będzie "Undefine" zmienną. Można również ustawić zmienną Null, jednak jest to w jaki sposób te dwa podejścia różnią:

$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) 
13

Dalsze wyjaśnienia:

Podczas gdy zmienna może być null lub nie null, zmienna może być uznany ustawić lub nie ustawić.

ustawić zmienną Null, po prostu

$var = null; 

To sprawi $varNULL, co odpowiada false, 0 i tak dalej. Nadal będziesz mógł pobrać zmienną z $GLOBALS['var'], ponieważ jest ona nadal zdefiniowana/ustawiona. Jednak, aby usunąć zmienną z globalnej i/lub lokalnej przestrzeni nazw, należy użyć

unset($var); 

To sprawi $var nie ustawiony w ogóle. Nie będzie można znaleźć w $GLOBALS.