Utilisation de empty

Utilisation de empty - PHP - Programmation

Marsh Posté le 22-12-2010 à 09:12:52    

Bonjour,
 
  Je viens de découvrir à mes dépends la fonction empty dans le code d'un projet que je dois débuguer. Je me rends compte que l'utilisateur utilise un empty pour semble t'il tester a la fois si c'est NULL ou vide.
 
  Mais quand je lis php.net je me rend compte qu'empty couvre bien plus de cas
 

  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)NULLFALSEarray() (un tableau vide)var $var; (une variable déclarée, mais sans valeur dans une classe)


 
Je me demande donc mais que bien utiliser empty pour tester d'un coup un nombre de cas aussi large ? Cela prouve une non maitrise du code je trouve.
 
Qu'en pensez vous ?
 
 
Pierre


---------------
Du tofu en Alsace : www.tofuhong.com
Reply

Marsh Posté le 22-12-2010 à 09:12:52   

Reply

Marsh Posté le 22-12-2010 à 09:36:14    

C'est php, cherche pas.:D
Si tu veux des comparaisons exactes, contente-toi de === :D


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 22-12-2010 à 11:02:07    

empty c'est un reliquat de PHP3, faut plus l'utiliser.
 
A la place tu as isset, is_null, strlen, count, array_key_exists
 
Dans le même genre, c'est comme ceux qui font isset($tab[1]) au lieu de array_key_exists(1, $tab). Le pire c'est qu'on trouve ce genre d'erreur dans du code soi-disant "propre" de framework

Reply

Marsh Posté le 22-12-2010 à 12:35:56    

smaragdus a écrit :

empty c'est un reliquat de PHP3, faut plus l'utiliser.
 
A la place tu as isset, is_null, strlen, count, array_key_exists
 
Dans le même genre, c'est comme ceux qui font isset($tab[1]) au lieu de array_key_exists(1, $tab). Le pire c'est qu'on trouve ce genre d'erreur dans du code soi-disant "propre" de framework


 
+1
 
Pour ceux qui se demanderaient pourquoi :
 

Code :
  1. $foo['bar'] = null;
  2.  
  3. var_dump(isset($foo['bar'])); // bool(false)
  4.  
  5. var_dump(array_key_exists('bar', $foo)); // bool(true)


---------------
Gamertag: CoteBlack YeLL
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed