unserialize
<<<
unset var_dump
>>>

6.38 Fonctions de gestion des variables
6 Référence des fonctions
 Manuel PHP

Introduction
Pré-requis
Installation
Configuration à l'exécution
Types de ressources
Constantes pré-définies
debug_zval_dump
doubleval
empty
floatval
get_defined_vars
get_resource_type
gettype
import_request_variables
intval
is_array
is_bool
is_callable
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
var_export

6.38.37 unset()Détruit une variable

[ Exemples avec unset ]   CVS uniquement

void  unset ( mixed   var , mixed   var , mixed   ... )

unset détruit les variables spécifiées. Notez qu'en PHP 3, unset retournait toujours TRUE (en fait, la valeur entière 1). En PHP 4 toutefois, 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. Le variable globale gardera la valeur acquise avant l'appel à unset .
Exemple avec unset dans un contexte de fonction

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

Si vous désirez détruire une variable globale à l'intérieur d'une fonction, vous pouvez utiliser le tableau $GLOBALS pour le faire :
Exemple avec unset avec une variable globale

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

$bar = "truc";
foo();
?>

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 même valeur qu'elle avait avant l'appel de unset .
Exemple avec unset sur une référence

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

Si une variable statique est détruite à l'intérieure d'une fonction unset détruira la variable seulement dans le contexte du reste de la fonction. Les appels suivants restaureront la valeur précédente de la variable.
Exemple avec unset et une variable statique

<?php
function foo()
{
    static
$bar;
    
$bar++;
    echo
"Avant unset : $bar, ";
    unset(
$bar);
    
$bar = 23;
    echo
"après unset : $bar\n";
}
foo();
foo();
foo();
?>

Note

Comme ceci est une structure du langage, et non pas une fonction, il n'est pas possible de l'appeler avec les variables fonctions .

Voir aussi array_splice , isset et empty .

<< unset >>
unserialize Fonctions de gestion des variables var_dump