unset

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : unset

par Ryle » 27 août 2008, 17:03

Ca ne devrait pas géner "is set" signifie "est ce que ma variable est définie ?", tandis que "empty" va controler si la variable est : null ou non définie, vide, égale à 0, à false, à array() ...

Suffit donc juste d'utiliser la fonction qui correspond à son besoin ;)

par dev-track » 27 août 2008, 16:31

bah moi ça va ça baigne , mes GET ne prenne jamais la valeur "" ( et même si ils la prennai j'aurai pas besoin de différencier ) donc empty() me convient tout à fait pourtant :

<?php
$a=isset($test);
$test="";
$b=isset($test);
//$a = false $b = true
?>

Ca peut en gener certain ( empty ne fera pas la difference c'est ça que je veu dire ) .

par guilt92 » 27 août 2008, 16:19

ça c'est embêtant , mais bon , ça irra pour ce que j'ai à faire .
Nous pourrions sûrement t'orienter mieux si tu nous disais ce que tu as à faire :D

Personnellement je trouve ca logique qu'une chaine vide ("") soit considérée comme vide... ;)

par dev-track » 27 août 2008, 16:15

ça c'est embêtant , mais bon , ça irra pour ce que j'ai à faire .

$cota_post_resolu++; :D

par guilt92 » 27 août 2008, 15:12

Oui, regardes la doc de la fonction empty()
Ce qui suit est considéré comme étant vide :
"" (une chaîne vide)
0 (0 en tant qu'entier)
"0" (0 en tant que chaîne de caractères)
NULL
FALSE
array() (un tableau vide)
var $var; (une variable déclarée, mais sans valeur dans une classe)

par dev-track » 27 août 2008, 15:03

Merci bien , empty , je retien bien :D
Si il y a une chaine vide c'est empty ? genre $test = ""; , empty($test) == true ?

par mere-teresa » 27 août 2008, 14:53

isSet() teste si ta variable contient quelque chose différent de la valeur NULL
unSet() vide ta variable, et donc si elle n'existe pas et que tu as le réglage d'affichage d'erreurs au plus élevé, tu as une erreur (impossible de vider une variable qui n'existe pas).

Je te conseille plutôt d'utiliser le test empty()
if (empty($_GET['c'])) {
  //instructions
}

par guilt92 » 27 août 2008, 14:53

Bonjour

Cela me parait totalement logique :

La fonction unset() a pour effet de détruire une variable. Ainsi elle ne peut s executer QUE si la variable que l'on veut détruire existe.

La fonction isset() teste l'existence d'une variable. Ainsi si la variable existe la fonction renvoie true, sinon elle renvoie false.

La meilleure option est ainsi de faire par exemple :
if(isset($var)) { //si la variable existe
      unset($var); //on la détruit
}
Comme ca tu es sur de ne jamais avoir de message d erreur mais de toujours détruire la variable si elle existe.

unset

par dev-track » 27 août 2008, 14:17

 if (unset($_GET['c'])) {
//instructions
}
//resultat : unexpected T_UNSET
if (!isset($_GET['c'])) {
//instructions
}
//resultat : ça marche

Pourquoi ( question conne mais c'est le genre de truc qui me donne envie de tuer :evil: ) ?