Isset/isempty

Résolu
cs_glad Messages postés 97 Date d'inscription lundi 26 novembre 2001 Statut Membre Dernière intervention 24 février 2012 - 25 janv. 2008 à 12:33
codefalse Messages postés 1123 Date d'inscription mardi 8 janvier 2002 Statut Modérateur Dernière intervention 21 avril 2009 - 25 janv. 2008 à 14:48
Bonjour,

J'ai l'habitude de coder des lignes dans le genre :

 if (isset($variable) && !empty($variable))
   ...
Je me demande si je ne pourrais pas plutôt écrire :

 if (!empty($tableimpactee))
   ...

Isset est-il utile dans ce cas là ?

merci

6 réponses

codefalse Messages postés 1123 Date d'inscription mardi 8 janvier 2002 Statut Modérateur Dernière intervention 21 avril 2009 1
25 janv. 2008 à 13:30
Yop
Si $variable n'est pas setté (isset ($variable ) false) alors empty ne fera pas de notice ou autre, il agit comme isset : si isset ($variable) false alors empty ($variable) == true.

Tu peux donc faire directement !empty ($variable);
3
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
25 janv. 2008 à 14:07
@codefalse=>Non, que si empty($var) true, cela n'implique pas non plus que isset($var) false.Parce que si isset($var) true, c'est qu'on a toujours une "valeur". Que cette valeur soit l'entier 0, ou une chaîne vide, ou false, etc...mais si on définit une variable à NULL par exemple, isset($var) false.
<?php
class A {
    static $B = null;
}
echo (int)isset(A::$B);
echo (int)empty(A::$B);
echo (int)is_null(A::$B);
?>

@glad =>
Oui c'est bien ce que je voulais dire :-)
3
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
25 janv. 2008 à 13:50
Hello,
Attention quand même : l'inverse n'est pas vrai. Il ne faut donc pas prendre ces 2 fonctions/structures comme des alias l'une de l'autre.
0
codefalse Messages postés 1123 Date d'inscription mardi 8 janvier 2002 Statut Modérateur Dernière intervention 21 avril 2009 1
25 janv. 2008 à 13:52
@Malalam : tu veux dire considerer que (isset ($variable) == true) cela veut dire qu'elle contient une valeur => faux ?
si oui je suis d'accord avec toi

sinon j'ai pas compris :p
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_glad Messages postés 97 Date d'inscription lundi 26 novembre 2001 Statut Membre Dernière intervention 24 février 2012
25 janv. 2008 à 13:55
 je suis bien conscient qu'une variable "set" peut être tout à fait vide...

je trouvais que faire isset + empty était redondant,

Ce que codefalse me confirme, je vais pouvoir simplifier mon code
0
codefalse Messages postés 1123 Date d'inscription mardi 8 janvier 2002 Statut Modérateur Dernière intervention 21 avril 2009 1
25 janv. 2008 à 14:48
J'avais plus ou moin compris ca ;) :p
0
Rejoignez-nous