









Il existe une méthode qui permet de remplacer des if simple (par simple je veux dire mono-instruction) par une version 'abbrégé'. Par exempe, le code suivant pourrait etre réduit et optimisé :
<?php if ($a=='ok') { $b=$a; } else { $b='erreur'; } ?>
Apres optimisation, on obitendrais
<?php $b=($a=='ok')?$a:'erreur'; ?>
On voit donc que l'on gagne enormement de place.
Mais, moins visible, on gagne grandement en rapidité d'exécution du script.
Certe la lisibilité peu semblé déroutante au début, mais a force d'utilisation elle deviens totalement naturelle.
La syntaxe de ce IF réduit est comme ceci :
(expresion a évaluer)?resultat pour l'expresion vérifié:resultat pour l'expression non vérifié
En fait, dans la parenthese, on met le contenu de laparenthse d'un vrai IF
Le ? veut dire 'alors' et le : veux dire 'sinon'
L'instruction qui suit les ? ou le : est a concidéré comme renvoyé par un return.
en effet, ceci n'est pas valide :
$a=2; ($a==1)? echo 'plop' : echo 'pouet' ;
il faudrais ecrire :
$a=2; echo ($a==1)? 'plop' : 'pouet';
Exactement comme si on avais fait :
function GetEcho($a) { if ($a==1) return 'plop'; else return 'pouet'; } $a=2; echo GetEcho($a);
Discussion