2009-12-06 9 views

Répondre

31

Utilisez unset($var);

+0

Est-ce que cela supprime la référence * et * garbage collecter la mémoire aussi? –

+4

@Jeremy - oui c'est le cas – mauris

1

En outre, vous pouvez définir la variable à null:

<?php 

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

?> 
+0

Pour un simple '$ variable', le paramétrer sur 'null' est meilleur pour mes besoins. – Pathros

19

Comme dit nacmartin, unset sera "undefine" une variable. Vous pouvez également définir la variable à null, mais voici comment les deux approches diffèrent:

$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

Des explications complémentaires:

Alors qu'une variable peut être nulle ou non nulle, une variable peut également être considéré comme réglé ou non.

pour définir une variable à null, il vous suffit

$var = null; 

Cela rendra $varnull, ce qui équivaut à false, 0 et ainsi de suite. Vous pourrez toujours obtenir la variable de $GLOBALS['var'] car elle est toujours définie/définie. Cependant, pour supprimer une variable de l'espace de noms global et/ou local, vous utilisez le

unset($var); 

Cela fera $var pas réglé du tout. Vous ne serez pas en mesure de trouver dans $GLOBALS.

Questions connexes