SommaireTelecharger la documentationChapitre suivantChapitre precedent  

 
Raccourci :  
Variables

doubleval
empty
gettype
get_defined_vars
get_resource_type
intval
is_array
is_bool
is_double
is_float
is_int
is_integer
is_long
is_null
is_numeric
is_object
is_real
is_resource
is_scalar
is_string
isset
print_r
serialize
settype
strval
unserialize
unset
var_dump

8.23.27 unset
[Notes en ligne] [Exemples]

Détruit une variable

void unset (mixed var, mixed var, mixed ...)
unset() détruit les variables var. Notez qu'en PHP 3, unset() retournait toujours TRUE (en fait, la valeur entière 1). unset() n'est plus une véritable fonction : c'est une structure du langage, ce qui fait qu'elle ne retourne pas de valeur. Lire la valeur retournée par unset() (dans une variable, par exemple), retourne une erreur d'analyse.

Exemple avec unset()


<?php
// Destruction d'une seule variable
  unset($foo);
// Destruction d'un élément de tableau
  unset($bar['quux']);
// Destruction de plusieurs variables
  unset($foo1, $foo2, $foo3);
?>
      


Le comportement de unset() à l'intérieur d'une fonction peut varier suivant le type de variable que vous voulez détruire.
Si une variable globale est détruite avec unset() depuis une fonction, seule la variable locale sera détruite. La variable globale gardera la valeur acquise avant l'appel de unset().


<?php
function destroy_foo() {
    global $foo;
    unset($foo);
}
$foo = 'bar';
destroy_foo();
echo $foo;
?>
      

L'exemple ci-dessus affichera :

bar
      


Si une variable qui est passée par référence est détruite à l'intérieur d'une fonction, seule la variable locale sera détruite. La variable globale conservera la dernière valeur qu'elle avait avant l'appel de unset().


<?php
function foo(&$bar) {
    unset($bar);
    $bar = "bla";
}
$bar = 'truc';
echo "$bar\n";
foo($bar);
echo "$bar\n";
?>
      

L'exemple ci-dessus va afficher :


truc
truc
       
      


Si une variable statique est détruite à l'intérieur d'une fonction, unset() détruira la référence à la variable statique, plutôt que la variable statique elle-même.


<?php
function foo() {
    static $a;
    $a++;
       echo "$a\n";
    unset($a);
}
foo();
foo();
foo();
?>
      

L'affichage du script ci-dessus donnera :


1
2
3
       
      


Si vous voulez détruire une variable globale, depuis une fonction, vous pouvez utiliser le tableau $GLOBALS :


<?php
function foo() {
    unset($GLOBALS['bar']);
}
$bar = "truc";
foo();
?>
      



Note : unset() est une structure du langage et non pas une fonction.
Voir aussi isset() et empty().


Chapitre précédentChapitre suivantAccueil nexen.net