par
Calimero » 20 déc. 2011, 17:51
En php, OR est un opérateur logique (ce qui signifie qu'il ne sait travailler qu'avec deux types de valeurs,
true ou
false - les conversions nécessaires sont faites automatiquement).
Une chaîne de caractère non-vide s'évaluant toujours à true, ce if() :
if ($email == '[email protected]' OR '[email protected]' OR '[email protected]' OR '[email protected]') {
Equivaut pour php à :
if( $email == '[email protected]' OR true OR true OR true )
Le résultat étant donc toujours vrai.
Il ne faut donc pas faire l'économie des opérateurs == comme tu l'as fait, ce sont eux qui donnent du sens à chaque condition (qui sont ensuite calculées via les OR). C'est syntaxiquement correct, mais la signification est fausse
Correction :
if ($email == '[email protected]' OR $email == '[email protected]' OR $email == '[email protected]' OR $email == '[email protected]') {
En php, OR est un opérateur logique (ce qui signifie qu'il ne sait travailler qu'avec deux types de valeurs, [b]true[/b] ou [b]false[/b] - les conversions nécessaires sont faites automatiquement).
Une chaîne de caractère non-vide s'évaluant toujours à true, ce if() :
[php]if ($email == '
[email protected]' OR '
[email protected]' OR '
[email protected]' OR '
[email protected]') {
[/php]
Equivaut pour php à :
[php]if( $email == '
[email protected]' OR true OR true OR true )[/php]
Le résultat étant donc toujours vrai.
Il ne faut donc pas faire l'économie des opérateurs == comme tu l'as fait, ce sont eux qui donnent du sens à chaque condition (qui sont ensuite calculées via les OR). C'est syntaxiquement correct, mais la signification est fausse :)
Correction :
[php]if ($email == '
[email protected]' OR $email == '
[email protected]' OR $email == '
[email protected]' OR $email == '
[email protected]') {
[/php]