Meilleur moyen de rédaction Si autre chose

Y a-t-il une meilleure façon d'écrire ceci:

if (in_array('WIN_WAITING', $statuses)) { $this->globalStatus = 'WIN_WAITING'; } else if (in_array('IN_PLAY', $statuses)) { $this->globalStatus = 'IN_PLAY'; } else if (in_array('WON', $statuses)) { $this->pay($this->tickets['ticketID']); $this->globalStatus = 'WON'; } else if (in_array('PAYEDOUT', $statuses)) { $this->globalStatus = 'PAYEDOUT'; } else if (in_array('CLOSED', $statuses)) { $this->globalStatus = 'CLOSED'; } else if (in_array('LOST', $statuses)) { $this->globalStatus = 'LOST'; } else if (in_array('OPEN', $statuses)) { $this->globalStatus = 'OPEN'; } 

Cela devrait fonctionner pour vous:

(Ici, je viens de parcourir toutes tes strings de search et si je l'ai trouvé, je casse la boucle)

 <?php $search = ["WIN_WAITING", "IN_PLAY", "WON", "PAYEDOUT", "CLOSED", "LOST", "OPEN"]; foreach($search as $v) { if(in_array($v, $statuses)) { if($v == "WON") $this->pay($this->tickets['ticketID']); $this->globalStatus = $v; break; } } ?> 

Peut-être quelque chose comme

 $options = array('WIN_WAITING', 'IN_PLAY', 'WON', 'PAYEDOUT', 'CLOSED', 'LOST', 'OPEN'); for($i=0; $i<=7; $i++) { if(in_array($options[$i], $statuses)) { $this->globalStatus = $options[$i]; break; } } 

Non testé, juste une idée