Page 1 sur 1

test ternaire et point virgule

Posté : 22 mars 2009, 21:00
par x@v
Bonjour,
pourquoi ont ne met pas de point virgule sur ce test ?
<input <?php echo($_POST['choixFormule']== 'formule2')?'checked="checked"':''?>
Cela est vrai en java aussi.

Posté : 22 mars 2009, 21:17
par Calimero
Parcequ'il y a un tag fermant : ?>

Posté : 22 mars 2009, 21:19
par Berzemus
parce que le point virgule sert pour signaler la fin d'une ligne ?

edit: ah ben zut, j'ai mal suivi. Calimero a vu plus juste.

Posté : 22 mars 2009, 22:04
par Ryle
Pour être exact, le point-virgule sert à terminer une instruction :)

On peut avoir des lignes de codes sans point-virgule, tant que l'instruction continue, comme on peut avoir plusieurs instructions sur une même ligne si elles sont séparées par des ;

Dans le cas présent, c'est effectivement la présence de la balise fermante de php et le fait qu'il n'y ait pas d'autres instructions, qui te permet de te dispenser du point-virgule :)

(bon par contre perso, j'ai tendance à les y mettre quand même, histoire de pas chercher pendant des heures d'où vient le bug quand j'ajouterais une instruction 6 mois après ;))

Posté : 22 mars 2009, 22:23
par Victor BRITO
Autrement dit, on a affaire au point-virgule facultatif de la dernière instruction. ;)

Posté : 22 mars 2009, 22:23
par x@v
dans cette instruction j'ai pourtant une erreurn ont est d'accord ?
<?php echo 'toto'?>

Posté : 22 mars 2009, 22:35
par Calimero
dans cette instruction j'ai pourtant une erreurn ont est d'accord ?
<?php echo 'toto'?>
Non. Quelle erreur as-tu ?

Posté : 22 mars 2009, 23:03
par x@v
aucune erreur...