2010-12-07 6 views
1

Comment mettre à l'état initial une variable variable représentant un élément de tableau?Annuler une variable variable

function remove($var) { 
    unset($$var); 
} 

$x=array('a'=>1,'b'=>2); 
remove('$x["a"]'); 
var_dump(isset($x['a'])); 

Le code ci-dessus ne pas hors service l'élément de tableau x['a']. J'ai besoin de cette même fonction remove() pour travailler avec $_GET['ijk'].

+0

Si vous êtes seulement préoccupé par '_GET' $, alors unset directement. – Matthew

+0

Pourquoi n'utilisez-vous pas 'unset ($ x [" a "])' directement? – Gumbo

Répondre

-2

unset est plus facile de taper alors remove

Lorsque vous utilisez avec un élément de tableau, le tableau existera encore

Vous pouvez réécrire votre fonction pour traiter le paramètre comme une référence;

EDIT: mise à jour pour utiliser le code de alex function remove(&$array, $key){ unset($array[$key]); } remove($x,'a');

+0

[Cette fonction n'a pas fonctionné pour moi] (http://codepad.org/Vw4aSC4H). – alex

+0

A partir du manuel: "Si une variable qui est PASSED BY REFERENCE est unset() dans une fonction, seule la variable locale est détruite.La variable dans l'environnement appelant conservera la même valeur qu'avant l'appel de unset()." – Matthew

+1

Désolé, essayez le code de alex – Camro

1

Il suffit d'utiliser unset() ou la distribution (unset).

Si vous souhaitez utiliser une fonction pour la désarmer, quelque chose comme ceci serait mieux.

function removeMemberByKey(&$array, $key) { 
    unset($array[$key]); 
} 

It works!

1

Vous pouvez essayer,

function remove(&$var,$key) { 
    unset($var[$key]); 
} 

$x=array('a'=>1,'b'=>2); 
remove($x,'a'); 
var_dump(isset($x['a'])); 
0
Try This: 

<?php 
    /* Unset All Declair PHP variable*/ 
    $PHP_Define_Vars = array_keys(get_defined_vars()); 
    foreach($PHP_Define_Vars as $Blast) { 
     // or may be reset them to empty string# ${"$var"} = ""; 
     unset(${"$Blast"}); 
    } 
?> 
Questions connexes