Je reçois un string côté PHP en envoyant un boolean côté JS.
Un classique de la programmation Web sur lequel je me suis bêtement heurté aujourd’hui.
Dieu sait que j’aime manipuler les strings mais je devais récupérer et traiter un booléen !

J’envoie un Boolean, je reçois un String…

Image d'un faux-ami de la programmation, le String !

Oui elle est facile celle la. Mais remarquez comme cela égaie tout de suite mon blog et votre attention n’est-ce-pas ! gadost0 / Pixabay

Je transmettais donc par jQuery (ajax) une variable JS booléenne mais la valeur récupérée côté PHP était un String. Tout à fait normal puisque le protocole HTTP gère du format TEXT (request/response). Je ne faisais donc pas attention au rendu de l’affichage de la variable côté php :

Le premier qui me dit que c’est une faute de débutant honteuse et que je n’avais qu’à utiliser var_dump()….a raison. Mais je vous rassure je n’y ai passé que quelques ridicules petites minutes 😀

J’ai pensé simplement utiliser boolval() pour traiter la valeur en tant que booléenne mais il n’a pas un rôle de convertisseur tel que j’en avais besoin. En effet si je passe « false » (un string contenant le mot false…) à la méthode boolval(), celle-ci m’aurait retourné true (et non pas false) puisque un String est Vrai par défaut !

filter_var() pour la conversion en Boolean

C’est donc une conversion dont j’avais besoin et voici la solution :

En alternative sinon j’aurais pu transmettre l’équivalent entier du booléen côté Javascript, par exemple :

Ce qui m’aurait permis côté php d’utiliser boolval() à son juste rôle, mais l’approche m’est apparue moins séduisante que filter_var().

Filtre spécial String

Ceci est un filtre sans aucun rapport avec cet article. Et alors ?


Partagez cet articleShare on FacebookShare on Google+Tweet about this on TwitterShare on LinkedInDigg thisShare on TumblrShare on RedditEmail this to someone