Comportement de if($array) en PHP
Fermé
Castor
-
30 mars 2011 à 11:56
Bilow Messages postés 1014 Date d'inscription samedi 21 août 2010 Statut Membre Dernière intervention 2 août 2015 - 30 mars 2011 à 14:24
Bilow Messages postés 1014 Date d'inscription samedi 21 août 2010 Statut Membre Dernière intervention 2 août 2015 - 30 mars 2011 à 14:24
A voir également:
- Comportement de if($array) en PHP
- Easy php - Télécharger - Divers Web & Internet
- Nous suspectons un comportement automatisé sur votre compte instagram - Forum Instagram
- Get_magic_quotes_gpc php 8 ✓ - Forum PHP
- The realtek network controller was not found. if deep sleep mode is enabled please plug the cable ✓ - Forum Pilotes (drivers)
- Php natif - Forum PHP
8 réponses
DasSium95
Messages postés
673
Date d'inscription
mardi 30 mars 2010
Statut
Membre
Dernière intervention
13 avril 2016
135
30 mars 2011 à 11:57
30 mars 2011 à 11:57
Bah non parce que ton test regarde s'il y a quelque chose dans ton tableau
DasSium95
Messages postés
673
Date d'inscription
mardi 30 mars 2010
Statut
Membre
Dernière intervention
13 avril 2016
135
30 mars 2011 à 12:01
30 mars 2011 à 12:01
Un test sur un tableau true ou false ne veut rien dire. Si tu fais un test sur une variable, tu test le contenu de ta variable. SI le tableau a été crée le test sera bon et ira au else parce que ta variable qui contient ton tableau n'est pas vide. Même si ton tableau, lui, est vide
Merci pour l'explication mais je n'ai pas tout saisi.
Tu me dis que le test sur la variable sera bon parce que la variable n'est pas vide, malgré que le tableau le soit.
Mais c'est l'inverse qui se produit. C'est à dire que bien que la variable soit définie et mon tableau vide, il se comporte comme si ma variable n'était pas définie.
Tu me dis que le test sur la variable sera bon parce que la variable n'est pas vide, malgré que le tableau le soit.
Mais c'est l'inverse qui se produit. C'est à dire que bien que la variable soit définie et mon tableau vide, il se comporte comme si ma variable n'était pas définie.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Gremy87
Messages postés
352
Date d'inscription
mercredi 19 mai 2010
Statut
Membre
Dernière intervention
19 mars 2014
38
30 mars 2011 à 14:05
30 mars 2011 à 14:05
Bonjour,
si j'ai bien compris soit ça s'est bien passé et ta variable est un tableau (vide ou non) soit ça s'est mal passé et ta variable vaut false, c'est ça?
si l'on raisonne logiquement, tu veux savoir si ta variable est un tableau ou non => if(is_array($variable_de_retour))
Bonne journée
si j'ai bien compris soit ça s'est bien passé et ta variable est un tableau (vide ou non) soit ça s'est mal passé et ta variable vaut false, c'est ça?
si l'on raisonne logiquement, tu veux savoir si ta variable est un tableau ou non => if(is_array($variable_de_retour))
Bonne journée
Bonjour
Pour tester si une variable est vraiment false en php, penser aux comparaisons === et !== qui comparent non seulement la valeur mais aussi le type :
Pour tester si une variable est vraiment false en php, penser aux comparaisons === et !== qui comparent non seulement la valeur mais aussi le type :
if($variable_de_retour !== false) { traitement }
Bilow
Messages postés
1014
Date d'inscription
samedi 21 août 2010
Statut
Membre
Dernière intervention
2 août 2015
117
Modifié par Bilow le 30/03/2011 à 14:26
Modifié par Bilow le 30/03/2011 à 14:26
Salut,
Si tu as un tableau, et que tu souhaites s'il est vide ou non, alors il faut utiliser sizeof() :
sizeof() renvoi (pour un tableau) le nombres d'entrées présentes. Si c'est 1, 2, 3 et plus, dans un if cela revient à "true", et 0 correspond à "false".
Edit : Ce que tu veux faire, c'est avoir un traitement d'une variable, et :
- Si elle vaut "false", passer au 'else'
- Si elle vaut un tableau vide, passer au 'else'
- Si elle vaut un tableau non vide, alors rester dans le if
Toutefois if($variable) suffit pour le même traitement.
A toi de voir ! ;)
Si tu as un tableau, et que tu souhaites s'il est vide ou non, alors il faut utiliser sizeof() :
if( sizeof($tableau) ){ echo "Le tableau n'est pas vide !"; } else echo "Tableau vide";
sizeof() renvoi (pour un tableau) le nombres d'entrées présentes. Si c'est 1, 2, 3 et plus, dans un if cela revient à "true", et 0 correspond à "false".
Edit : Ce que tu veux faire, c'est avoir un traitement d'une variable, et :
- Si elle vaut "false", passer au 'else'
- Si elle vaut un tableau vide, passer au 'else'
- Si elle vaut un tableau non vide, alors rester dans le if
if($variable || ( is_array($variable) && sizeof($variable) )){ echo "Tableau non vide"; } else{ echo "False ou tableau vide"; }
Toutefois if($variable) suffit pour le même traitement.
A toi de voir ! ;)
Gremy87
Messages postés
352
Date d'inscription
mercredi 19 mai 2010
Statut
Membre
Dernière intervention
19 mars 2014
38
30 mars 2011 à 14:13
30 mars 2011 à 14:13
lol vu le nombre de réponses différentes (et qui me paraissent toutes très correctes) il n'as que l'embarras du choix xD
Bilow
Messages postés
1014
Date d'inscription
samedi 21 août 2010
Statut
Membre
Dernière intervention
2 août 2015
117
30 mars 2011 à 14:24
30 mars 2011 à 14:24
Pour une fois =D
D'habitude, quand j'ai plusieurs réponses, aucune n'est bonne .. tant mieux pour lui !
D'habitude, quand j'ai plusieurs réponses, aucune n'est bonne .. tant mieux pour lui !