Overblog
Suivre ce blog Administration + Créer mon blog
11 janvier 2010 1 11 /01 /janvier /2010 19:43

Ne vous êtes vous jamais posé cette question ? Vraiment pas ? Pas une seule fois ? Parce que moi elle m'obsède, j'en dors plus la nuit, je veux savoir ce qu'il y a dans mon tableau.

Certains, dont je tairait le nom par égard pour leur famille, m'ont ris au nez en me disant :

 « Quoi de plus simple mon cher Bruce ? Tu veux savoir si un élément de ton tableau existe ? »
 « Oui ! Oui ! Je le veux »
 « En es tu sur ? Tu ne regretteras pas par la suite ? »
 « Non ! Dis moi maintenant ou ... je ne réponds plus de rien »
 « Et bien mon cher Bruce, utilise simplement la fonction isset() »
 « ... »


Bah non monsieur ! La fonction isset() de PhP est certes bien pratique et j'en use dès que faire se peux mais dans mon cas ça allait pas. Vous devez commencer à vous demander ce que je raconte, je vais donc vous expliquer.

Imaginez un tableau PhP qui est généré à chaud pendant l'exécution, je n'ai aucun moyen de deviner ce qu'il contient et qu'à un moment précis il corresponde à ça :

$tableau = array('a' => 1,'b' => 2, 'c'=> null, 'd' => 3);

Jusque là pas de quoi fouetter un chat. Maintenant imaginons que, pour une raison qui ne regarde que moi, je souhaite savoir si $tableau['c'] existe. Si j'utilise isset($tableau['c']) j'obtiendrais comme résultat le booléen false. Menteur ! isset ne me dit pas la vérité, cet élément existe mais il me dit que non !

Pourquoi ? Simplement parce qu'il vaut NULL et que si un élément n'existe pas il vaut lui aussi NULL. Du coup isset ne fait pas la différence et pense que ma variable n'existe pas.

Pour pallier au problème, il suffit d'utiliser une autre fonction php : key_exists(). En effet, key_exists('c') renverra le booléen true.

Me voilà rassuré, je sais maintenant ce qu'il y a dans mon tableau.

 

 

Partager cet article
Repost0

Présentation

  • : Carnet de route d'un développeur PhP...
  • : Ah ! Une description... Ben en fait je me disais que j'allais faire un blog depuis longtemps, sauf que c'était juste pour y stocker des trucs pour moi, des espèces de post-it virtuels. Bon tant qu'à faire autant qu'il te profite à toi aussi.
  • Contact

Recherche

Liens