English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
Toutes les catégories

je répète bien !isset et empty il n'y a pas d'erreur. je ne dis pas isset mais bien !isset.
quels peuvent être les différences entre !isset et empty quant à leurs utilisations

2006-12-26 00:51:03 · 3 réponses · demandé par diamana 1 dans Informatique et internet Programmation

3 réponses

Je suis presque d'accord avec la reponse de Laurent H.
Le resultat retourne en php, sur la plupart des serveurs web sera celui qu'il decrit.
Mais pour pinailler la vraie reponse est :

!isset($x) vrai si et seulement la variable $x n'est pas definie
empty($x) ne s'applique que si x est definie, et est vraie si et seulement si $x est vide.

En d'autres termes, c'est une erreur d'appeler empty sur une variables $x non existante. Sur la plupart des serveurs empty($x) avec x non existant sera quand meme vrai, meme si cet appel n'a pas de sens en theorie.
Sous apache par exemple, ca fonctionne en apparence, mais chaque appel de empty ajoute une ligne de signalement d'erreur dans error_log.

Si on veut tester si x n'existe pas OU est vide, il ne faut pas juste ecrire
if(empty($x)) ...
mais
if(!isset($x) || empty($x)) ...

Si on veut tester si x existe et est non vide il faut ecrire
if(isset($x) && !empty($x)) ...

Pour repondre a la question sur 1 exemple.
Si $vide="", $rien n'existe pas et $plein="toto", alors

empty($vide)=1,
empty($rien) ==> erreur (mais retourne quand meme 1)
empty($plein)=""

!isset($vide)=""
!isset($rien)=1
!isset($plein)=""

Sur une variable non vide, c'est pareil. Sur une variable non existante la difference releve du pinaillage. Sur une variable vide, c'est carrement different.

2006-12-26 05:19:49 · answer #1 · answered by oyubir 6 · 0 0

Ok pour la réponse de "oyubir".

2006-12-27 07:33:28 · answer #2 · answered by hammadi 3 · 0 0

if (!empty($var)) // Si la variable existe ET n'est pas vide
if (empty($var)) // Si la variable n'existe pas OU est vide

if (!isset($var)) // Si la variable n'existe pas
if (isset($var)) // Si la variable existe

2006-12-26 09:11:41 · answer #3 · answered by Anonymous · 0 0

fedest.com, questions and answers