Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

if && and || or ...

10 réponses
Avatar
Fab!
Bonjour,

je teste l'expression suivante

if ((($a>="a") and (a<="z")) or (($a>="0") and ($a<="9")) or ($a=="."))

{
echo "test";
}



Donc dans la cas ou $a="Ü" (alt + 154 ) la condition n'est pas respectée,
c'est bien ça ?
En tout c'est ce que j'ai compris, pourtant l'instruction qui suit '' if ''
est executée... et là je ne comprends plus.
J'ai egalement essayé avec && à la place de AND et || à la place de OR.

Si quelqu'un peut m'expliquer :)

Merci.

10 réponses

Avatar
Guillaume Bouchard

if ((($a>="a") and (a<="z")) or (($a>="0") and ($a<="9")) or ($a=="."))


replace par if (preg_match('`^[a-z0-9.]$`',$a))

Donc dans la cas ou $a="Ü" (alt + 154 ) la condition n'est pas respectée,
c'est bien ça ?


Oui.

En tout c'est ce que j'ai compris, pourtant l'instruction qui suit '' if ''
est executée... et là je ne comprends plus.


le echo est executé ?

Si quelqu'un peut m'expliquer :)


J'ai pas comprit la suite de ton probleme.

--
Guillaume.

Avatar
Fab!
if ((($a>="a") and (a<="z")) or (($a>="0") and ($a<="9")) or ($a=="."))


---------------------a$

C'est bon, je perds la boule avec tous ces hiéroglyphes ;)

Avatar
Gromitt
"Fab!" a écrit dans le message de news:
3f3fc5bd$0$27014$
Bonjour,

je teste l'expression suivante

if ((($a>="a") and (a<="z")) or (($a>="0") and ($a<="9")) or ($a=="."))

{
echo "test";
}



Donc dans la cas ou $a="Ü" (alt + 154 ) la condition n'est pas respectée,
c'est bien ça ?
En tout c'est ce que j'ai compris, pourtant l'instruction qui suit '' if
''

est executée... et là je ne comprends plus.
J'ai egalement essayé avec && à la place de AND et || à la place de OR.


Aloha

if (($a>="a") && ($a<="z") || ($a>="0") && ($a<="9") || ($a==".")) echo
"test";

&& (et) a la priorité sur || (ou) donc tu peux virer les parenthèses.

de plus, si tu as fais un copier/coller, alors tu as oublié un "$" dans la
2eme condition

je n'ai pas de quoi tester la condition sur ce poste, mais je pense que ca
ne devrait plus t'afficher "test" dans le cas que tu cites.

--
Gromitt

Avatar
Fab!
"Gromitt"


if (($a>="a") && ($a<="z") || ($a>="0") && ($a<="9") || ($a==".")) echo
"test";

&& (et) a la priorité sur || (ou) donc tu peux virer les parenthèses.

de plus, si tu as fais un copier/coller, alors tu as oublié un "$" dans la
2eme condition

je n'ai pas de quoi tester la condition sur ce poste, mais je pense que ca
ne devrait plus t'afficher "test" dans le cas que tu cites.



Merci à tous pour les reponses, c'etait une erreur de syntaxe ($a).

Avatar
Denis Beauregard
Le 17 Aug 2003 21:18:19 GMT, "Fab!" écrivait
dans fr.comp.lang.php:

Bonjour,

je teste l'expression suivante

if ((($a>="a") and (a<="z")) or (($a>="0") and ($a<="9")) or ($a=="."))


serait-ce l'erreur ?
$a a


Denis

Avatar
Guillaume Bouchard

Merci à tous pour les reponses, c'etait une erreur de syntaxe ($a).


Ha, si tu avais eu la bonne habitude de coder avec error_reporting a
E_ALL, tu aurais remarquer cette erreur plus vite :)

<?php
error_reporting(E_ALL);
?>

--
Guillaume.

Avatar
Bobe
Fab! déclarait le 17/08/2003 23:18:
Bonjour,

je teste l'expression suivante

if ((($a>="a") and (a<="z")) or (($a>="0") and ($a<="9")) or ($a=="."))

{
echo "test";
}



Donc dans la cas ou $a="Ü" (alt + 154 ) la condition n'est pas respectée,
c'est bien ça ?
En tout c'est ce que j'ai compris, pourtant l'instruction qui suit '' if ''
est executée... et là je ne comprends plus.
J'ai egalement essayé avec && à la place de AND et || à la place de OR.

Si quelqu'un peut m'expliquer :)

Merci.


je te recommande les expressions régulières, ça rend les choses plus simple en
ce qui concerne le traitement/recherche de chaine

if( preg_match('/[a-z0-9.]/', $a) )
{
echo 'test';
}

--
Bobe

Avatar
Guillaume Bouchard
Bobe wrote:

[SNIP quote]


Tu ne pouvais pas citer seulement une seule ligne de son message ?

je te recommande les expressions régulières, ça rend les choses plus
simple en ce qui concerne le traitement/recherche de chaine


Heureusement que j'ai proposer la meme chose il y a 3 jours.

if( preg_match('/[a-z0-9.]/', $a) )


Erreur, le test de depart visait à ce que la variable $a contienent UN
caractere de a à z, 0 à 9 et le ., là tu proposes n'importe quels
chaines de x caracteres qui contient une foix ou plus [a-z0-9.] donc

d424s56d468s7&é"'234567 fonctionera...

--
Guillaume.

Avatar
Bobe
Guillaume Bouchard déclarait le 21/08/2003 16:03:


Tu ne pouvais pas citer seulement une seule ligne de son message ?



Le quote était très long, c'est impardonnable de ma part...


Heureusement que j'ai proposer la meme chose il y a 3 jours.



Navré, je pensais pourtant avoir lu tout le thread :/
Mes excuses

if( preg_match('/[a-z0-9.]/', $a) )



Erreur, le test de depart visait à ce que la variable $a contienent UN
caractere de a à z, 0 à 9 et le ., là tu proposes n'importe quels
chaines de x caracteres qui contient une foix ou plus [a-z0-9.] donc

d424s56d468s7&é"'234567 fonctionera...



Effectivement, j'étais fatigué et j'ai oublié d'ancrer le masque.

Au passage, si je reprend son code :

if ((($a>="a") and (a<="z")) or (($a>="0") and ($a<="9")) or ($a=="."))


ça donne : if( preg_match('/^([a-z]|[0-9]|.)$/', $a) )

et non pas : if (preg_match('`^[a-z0-9.]$`',$a))

--
Bobe (Aurélien Maille)


Avatar
Guillaume Bouchard
if ((($a>="a") and (a<="z")) or (($a>="0") and ($a<="9")) or ($a=="."))


ça donne : if( preg_match('/^([a-z]|[0-9]|.)$/', $a) )

et non pas : if (preg_match('`^[a-z0-9.]$`',$a))


Ce qui revient strictement au même :)

--
Guillaume.