Je n'ai pas compris l'intérêt des === avec (int) dans l'exemple de Sephi-Chan.
Il me semble que ( (int) $chaineDeCaractere === 0 ) renvoit toujours true en PHP. De plus ça équivaut à ($chaineDeCaractere == 0) non ?
Je suis plutôt d'accord avec Argorate sur ce point.
Si tu utilises == et que tu oublies un =, ça va générer un bug et tu corrigeras l'erreur immédiatement.
Si tu veux utiliser === et que tu oublies un =, le script fonctionnera, mais il ne fera pas exactement ce que tu souhaites et tu ne t'en rendras pas compte.
Par ailleurs bien joué barst pour l'astuce de la constante à gauche. Mais je pense qu'elle est surtout utile quand on utilise == plutôt que ===, car il est plus fréquent d'oublier un signe égal que deux.
Il me semble que ( (int) $chaineDeCaractere === 0 ) renvoit toujours true en PHP. De plus ça équivaut à ($chaineDeCaractere == 0) non ?
(26-12-2008, 09:51 PM)Sephi-Chan a écrit :(26-12-2008, 08:33 PM)Argorate a écrit : PS: Cela me rajoute un argument pour moi d'aillieur, si on commence a partir avec des triple =, la confusion devient possible comme le disait brast, donc je trouve plus clair de rester a 1 ou 2 égal, pas besoin d'en rajouter
Non pas du tout. C'est l'inverse. Si tu oublies un égal alors que tu n'en utilises que 2, ça va générer un bug. Alors que si tu mets deux égal au lieu de trois, ça fonctionnera très bien quand même.
Je suis plutôt d'accord avec Argorate sur ce point.
Si tu utilises == et que tu oublies un =, ça va générer un bug et tu corrigeras l'erreur immédiatement.
Si tu veux utiliser === et que tu oublies un =, le script fonctionnera, mais il ne fera pas exactement ce que tu souhaites et tu ne t'en rendras pas compte.
Par ailleurs bien joué barst pour l'astuce de la constante à gauche. Mais je pense qu'elle est surtout utile quand on utilise == plutôt que ===, car il est plus fréquent d'oublier un signe égal que deux.