par
Ryle » 14 mai 2010, 19:05
stealth35 je ne comprend pas le sens de ta reponse
je répondais a SinBert

Pour être plus précis, l'opérateur ">>" et "<<" ne sont pas des opérateurs de comparaison, mais des opérateurs sur les bits.
Ainsi ton test "$id >> 0" est en réalité une opération binaire servant à décaler la valeur binaire de $id de 0 bits vers la droite. A moins que $id soit strictement égal à 0, le résultat de cette opération sera toujours vrai, même si $id contient une chaine (et donc ton test sera erroné)
C'est uniquement l'opérateur "=" qui doit être doublé pour une comparaison "==" (voire triplé pour une comparaison stricte : valeur et type de variable "===").
[quote="stealth35"][quote="jehanon"]stealth35 je ne comprend pas le sens de ta reponse[/quote]
je répondais a SinBert :wink:[/quote]
Pour être plus précis, l'opérateur ">>" et "<<" ne sont pas des opérateurs de comparaison, mais des opérateurs sur les bits.
Ainsi ton test "$id >> 0" est en réalité une opération binaire servant à décaler la valeur binaire de $id de 0 bits vers la droite. A moins que $id soit strictement égal à 0, le résultat de cette opération sera toujours vrai, même si $id contient une chaine (et donc ton test sera erroné)
C'est uniquement l'opérateur "=" qui doit être doublé pour une comparaison "==" (voire triplé pour une comparaison stricte : valeur et type de variable "===").