Verificare più valori con operatore ternario

  • Creatore Discussione Creatore Discussione Marco_88
  • Data di inizio Data di inizio

Marco_88

Utente Attivo
4 Dic 2014
150
0
0
Roma
batwebit.blogspot.it
Ciao a tutti, sto cercando un modo "elegante" per fare questa cosa:

PHP:
<td><strong>€ <?php ($_SESSION["cms"]["conferma"]["settore1"] == 272) ? print euroFormat($_SESSION["cms"]["conferma"]["buyers_e_iva"]) : print $_SESSION["cms"]["conferma"]["buyer_importo"] ?></strong></td>

Oltre al 272 devo inoltre verificare 268,377,266,343,269,267 e vorrei evitare pertanto di scriverlo in 7 righe.
 
ciao puoi usare uno switch/case statement. Ad es.:

switch($_SESSION["cms"]["conferma"]["settore1"]){
case 272:
case 268:
...
case 267:
print euroFormat($_SESSION["cms"]["conferma"]["buyers_e_iva"]);
break;
default:
print $_SESSION["cms"]["conferma"]["buyer_importo"];
}
 
Potresti ad esempio verificare il tutto dentro ad un ciclo for. Questi numeri (272,377, ecc..) sono dentro ad un array?
 
in_array mi sembra la soluzione ideale :)


PHP:
$_SESSION["cms"]["conferma"]["settore1"] = array(
			"269" => $_SESSION["cms"]["conferma"]["settore1"] = 269,
			"266" => $_SESSION["cms"]["conferma"]["settore1"] = 266,
			"366" => $_SESSION["cms"]["conferma"]["settore1"] = 366,
                        "343" => $_SESSION["cms"]["conferma"]["settore1"] = 343
	) );


<td><strong>€ <?php (in_array(269,266,366,343,$_SESSION["cms"]["conferma"]["settore1"])) ? print euroFormat($_SESSION["cms"]["conferma"]["buyers_e_iva"]) : print $_SESSION["cms"]["conferma"]["buyer_importo"] ?></strong></td>
 

Discussioni simili