Ich arbeite gerade an einem Erfolgssystem für ein kleines Online-Spiel. Die Leistung Einheit hat grundsätzlich vier Attribute:PHP: Prüfe, ob eine ganze Zahl in einem bestimmten Intervall ist oder nicht
- id
- earnedBy
- earnedOn
- Fortschritt
Der letzte soll ein Prozentsatz sein, eine Zahl zwischen 0 bedeutet, und 100 Um sicherzustellen, dass keine Zahlen größer als 100 oder kleiner als 0 in der Datenbank gespeichert werden, sieht meine Setter-Methode wie folgt aus (Ich verwende Symfony2/Doctrine ORM):
public function setProgress($progress)
{
$this->progress = max(min($progress, 100), 0);
return $this;
}
Die wichtige Zeile hier ist max(min($progress, 100), 0)
.
Es funktioniert ganz gut, wollte ich frage nur, wenn es zu tun eine andere integrierte Funktion in PHP, dass die Sache genau, und wenn das, was ich tue in Ordnung ist (in Bezug auf gut entwickelnden Stil)
Ich glaube nicht, gibt es eine solche integrierte Funktion für das, was Sie brauchen, und was Sie gerade tun, ist völlig in Ordnung .. –
Sieht gut aus. Ich würde es wahrscheinlich in zwei Zeilen zerlegen, anstatt es zu verschachteln, um die Aufrufe der Funktion max() min() lesbarer zu machen. –
@ tereško, Kontext spielt eine Rolle. Wenn er das Symfony2-Framework verwendet, könnte es eine geeignetere Lösung für sein Problem geben. – Gerry