View cond.xpx
<html>
<head>
<title>TEST PHC VERSION $phcversion$</title>
<meta HTTP-EQUIV="Cache-Control" CONTENT="no-cache">
<meta HTTP-EQUIV="Expires" CONTENT="0">
<!-- Test de commentaire
ICI $sqlescapestr$
-->
</head>
<set NAME="i" EXPR="0">
<!--Déclare i à 0-->
<set NAME="module0" VALUE="#CCCCCC">
<!--Déclare un module de couleur gris-->
<body BGCOLOR="$module[i]$">
<!--Met un fond de couleur module0-->
<a href="ViewFile.xpx?fileName=$phccurrentfile$">Voir le source</a>
<font FACE="Verdana">
<!------------>
<h2>COND TEST</h2>
<!------------>
<form METHOD="get" ACTION="$PATH_INFO$">
<!--Nom du fichier en cours d'interprétation-->
<!--PHC, si des informations sont entrées dans le textarea-->
<textarea NAME="LargeText" ROWS=5 COLS=80><cond EXPR="!$LargeText$">$LargeText$</cond></textarea>
<br>
<input TYPE="submit" NAME="bt" VALUE="Valider">
<!--bouton valider-->
</form>
<set name="num" expr="$phcnull$">
$num$
Trouver un mot qui signifie bonjour en plus populaire:<br>
<br>
<!--si l'aire de texte est remplie-->
<cond EXPR="!$LargeText$">
COND: LargetText not null<br>
<cond EXPR="$LargeText$ = salut">
Réponse = GAGNE<br>
<else>
Réponse = $LargeText$ PERDU!!<br>
</cond>
<else>
LargeText is null<br>
</cond>
<br>
<br>
<!--tests de condition OU-->
<set NAME="expr1" EXPR="2*4">
<set NAME="expr2" EXPR="10">
2 * 4 > 7 OR 10 < 4
<cond EXPR=" ($expr1$>7) OR ($expr2$<4)">
<!--une des deux conditions est vérifiée, ici la 1ere-->
<b>-> VRAI</b><br>
<else>
-> FAUX<br>
</cond>
2 * 4 > 10 OR 3 + 2 > 4
<cond EXPR=" 2 * 4 > 10 OR 3 + 2 > 4">
<!--idem, une des deux conditions est vérifiée, ici la 2eme-->
<b>-> VRAI</b><br>
<else>
-> FAUX<br>
</cond>
2 * 4 > 10 OR 3 + 2 > 10 OR !$$toto$$
<cond EXPR="2 * 4 > 10 OR 3 + 2 > 10 OR !$toto$">
-> VRAI<br>
<else>
<!--aucune condition n'est vérifiée-->
<b>-> FAUX</b><br>
</cond>
<!--tests de condition ET-->
2 * 4 > 5 AND 3 + 2 >= 5 AND 3 = 2
<cond EXPR="2 * 4 > 5 AND 3 + 2 >= 5 AND 3 = 2">
-> VRAI<br>
<else>
<!--la dernière condition est fausse donc...-->
<b>-> FAUX</b><br>
</cond>
<!--tests de condition OU ET-->
2 * 4 > 5 AND 3 + 2 >= 5 OR 3 = 2
<cond EXPR="2 * 4 > 5 AND 3 + 2 >= 5 OR 3 = 2">
<!--il faut que les deux premières conditions soient vraies, ce qui est le cas-->
<b>-> VRAI</b><br>
<else>
-> FAUX<br>
</cond>
3 = 2 OR 2 * 4 > 7 AND 3 + 2 >= 5 OR 4 = 5
<cond EXPR="3 = 2 OR 2 * 4 > 7 AND 3 + 2 >= 5 OR 4 = 5">
<b>-> VRAI</b><br>
<!--les 2eme et 3eme condition sont vérifiées-->
<else>
-> FAUX<br>
</cond>
5 < 1 AND 3 > 2 OR 2 * 4 > 5 AND 3 + 2 >= 5
<cond EXPR="5 < 1 AND 3 > 2 OR 2 * 4 > 5 AND 3 + 2 >= 5">
<!--le 1er bloc AND est faux, mais le 2eme est vrai->vrai-->
<b>-> VRAI</b><br>
<else>
-> FAUX<br>
</cond>
<br>
<h1>TEST Comparaison aproximative</h1>
<debug mode="normal">
<set name="phcdebug" value="1">
<cond expr="'$PATH_INFO$'?='/pageCode/cond.xpx'">
$PATH_INFO$'?='/pageCode/cond.xpx' : comparaison vraie<br>
</cond>
<cond expr="'test'?='test'">
'test'?='test' : comparaison vraie<br>
</cond>
<set name="var" value="|4|">
<cond expr="$var$ !?= %|4|%">
$var$ !?= %|4|% : vrai
</cond>
erreurs liées à la programmation: $phcerr$<br>
</font>
</body>
</html>
20240505