[Réglé] Signification du "?" et des ":" en php

Signification du "?" et des ":" en php [Réglé] - PHP - Programmation

Marsh Posté le 18-07-2003 à 15:42:11    

J'aimerai comprendre cette ligne...

$translate_from = ($translate_to==$translate_from) ? $Translate[$postrow[$i]['user_lang']] : $translate_from;


 
Et la seule chose qui me manque c'est le sens du "?" et des ":" ?
 
Merci d'avance :)


Message édité par -ET- le 18-07-2003 à 16:09:34
Reply

Marsh Posté le 18-07-2003 à 15:42:11   

Reply

Marsh Posté le 18-07-2003 à 15:43:11    

x = a ? b : c
-> si a alors x = b sinon x = c


Message édité par antp le 18-07-2003 à 15:43:32

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 18-07-2003 à 15:44:45    

C'est comme en C ou Java, c'est un opérateur ternaire qui remplace le if(){} else{}. Dans ton cas, ça veut dire :

Code :
  1. if($translate_to==$translate_from)
  2. {
  3.   $translate_from = $Translate[$postrow[$i]['user_lang']];
  4. }
  5. else
  6. {
  7.   $translate_from = $ $translate_from;
  8. }


Perso j'aime pas du tout ce truc surtout dans le cas que tu as puisque dans le cas du else ça fait rien [:ddr555]
Vaut mieux écrire  

Code :
  1. if($translate_to==$translate_from)
  2.   $translate_from = $Translate[$postrow[$i]['user_lang']];


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 18-07-2003 à 16:09:17    

Cool !
Merci beaucoup tous les 2 :jap:

Reply

Marsh Posté le 18-07-2003 à 16:10:43    

certains disent que l'opérateur ternaire est peu lisible, je ne suis pas tout à fait d'accord. Disons que ça dépend, parfois, c est plus lisible qu'un if() {} else {}
mais pour un if seul en effet, vaut mieux pas

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed