test ternaire et point virgule

x@v
Mammouth du PHP | 570 Messages

22 mars 2009, 21:00

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.

ViPHP
ViPHP | 2287 Messages

22 mars 2009, 21:17

Parcequ'il y a un tag fermant : ?>
if(!@work()){ Nespresso(); } else { what(); }
______________________________

ViPHP
ViPHP | 4039 Messages

22 mars 2009, 21:19

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.
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

22 mars 2009, 22:04

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 ;))
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Mammouth du PHP | 2937 Messages

22 mars 2009, 22:23

Autrement dit, on a affaire au point-virgule facultatif de la dernière instruction. ;)

x@v
Mammouth du PHP | 570 Messages

22 mars 2009, 22:23

dans cette instruction j'ai pourtant une erreurn ont est d'accord ?
<?php echo 'toto'?>

ViPHP
ViPHP | 2287 Messages

22 mars 2009, 22:35

dans cette instruction j'ai pourtant une erreurn ont est d'accord ?
<?php echo 'toto'?>
Non. Quelle erreur as-tu ?
if(!@work()){ Nespresso(); } else { what(); }
______________________________

x@v
Mammouth du PHP | 570 Messages

22 mars 2009, 23:03

aucune erreur...