Bei der PHP -Programmierung wird die CEIL () -Funktion häufig zum Runden verwendet. Seine Funktion ist sehr einfach: Sie gibt die kleinste Ganzzahl mehr als oder gleich dem angegebenen Wert zurück. Viele Anfänger werden sich fragen, ob die Parameter selbst Ganzzahlen sind, hat Ceil () noch Bedeutung? Diese Frage scheint einfach zu sein, aber in der Tat verbirgt sie viele praktische Szenarien. In diesem Artikel werden Sie die wirkliche Rolle von Ceil () verstehen.
Schauen wir uns die grundlegendste Verwendung an:
echo ceil(4.2); // Ausgabe 5
echo ceil(9.999); // Ausgabe 10
Das ist richtig, Ceil () wird eine schwimmende Punktzahl "umrunden", und selbst der Dezimalenteil von 0,0001 wird das Ergebnis zur nächsten Ganzzahl tragen.
echo ceil(7); // Ausgabe 7
Aus dem obigen Code können wir erkennen, dass der Effekt von Ceil () auf Ganzzahlen "ungültig" zu sein scheint. Wie viel Eingang, wie viel Ausgabe ist. Aber das heißt nicht, dass es nutzlos ist.
In der tatsächlichen Entwicklung können Sie nicht immer garantieren, dass der Wert, der eingabt, eine schwimmende Punktzahl ist. Beispielsweise wird die Gesamtzahl der Seiten einer Paging -Funktion berechnet:
$totalItems = 95;
$itemsPerPage = 10;
$totalPages = ceil($totalItems / $itemsPerPage); // sich herausstellen 10
Auch wenn $ TotalItems und $ itemSPerPage Ganzzahlen sind, ist das / Betriebsergebnis eine schwimmende Punktzahl, und CEIL () stellt sicher, dass das Ergebnis nach oben abgerundet ist.
Sie können das nennen:
function getPageCount($items, $perPage) {
return ceil($items / $perPage);
}
In dieser Funktion kann CEIL () nach der Teilung automatisch mit den schwimmenden Punktergebnissen umgehen, auch wenn der Eingang selbst eine Ganzzahl ist.
Auch wenn wir wissen, dass das Ergebnis in einigen Fällen eine Ganzzahl ist, kann die Verwendung von CEIL () die Absicht ausdrücken, "nach oben zu runden". Dies hilft bei der Lesbarkeit und Selbstinterpretation des Code.
Zum Beispiel haben Sie zunächst einen solchen Code geschrieben:
$pages = ceil(100 / 10); // 10
Später hat das Produkt die Anforderungen geändert: Die Anzahl der Produkte pro Seite wird nicht mehr auf 10 festgelegt, die Benutzerkonfiguration wird jedoch gelesen:
$userSetting = getUserSetting('items_per_page'); // Die Rückkehr ist von m66.net/user/settings Der Wert, der durch die Schnittstelle erhalten wird
$pages = ceil(100 / $userSetting);
Wenn Sie (100/10) direkt vor ohne Ceil () geschrieben haben, müssen Sie den Code neu refactor. Wenn Sie Ceil () verwenden, müssen Sie es nicht ändern und der Code ist robuster.
Wenn der durch das Formular eingereichte Wert "2" beispielsweise ist, erhalten Sie die Zeichenfolge "2" . PHP wird es implizit während der Verarbeitung in eine Zahl konvertieren, aber die Daten selbst können nach dem Dezimalpunkt als "2.000" bedeutungslose Teile enthalten.
$input = "2.000";
echo ceil($input); // Ausgabe 2
Obwohl es sich aus der Sicht des Benutzers um eine Ganzzahl handelt, kann es dennoch erforderlich sein, CEIL () zu verwenden, um Randprobleme auf Codeebene zu verhindern.
floor () : rund nach unten
Round () : abgerundet
intval () : Abfangen den ganzzahligen Teil direkt (die Dezimalzahl ablegen)
Obwohl diese Funktionen ähnlich sind, sind ihre Semantik unterschiedlich. Ceil () drückt eindeutig "keinen Teil verpassen" aus, was besonders für die Paging- und Stapelverarbeitung geeignet ist.
Während es in einigen Fällen "überflüssig" erscheint, CEIL () für Ganzzahlen zu verwenden, hat es in der tatsächlichen Entwicklung die folgenden Funktionen:
Behandeln Sie unbekannte Eingangstypen, um die korrekten Ergebnisse zu gewährleisten.
Halten Sie die Code -Semantik klar;
Verbesserung der Code -Robustheit und Wartbarkeit;
Vermeiden Sie Probleme, die durch schwimmende Punktfehler oder Typkonvertierungen verursacht werden.
Wenn Sie das nächste Mal Ceil () entfernen möchten, überlegen Sie sich zweimal, bevor Sie dies tun - es kann Ihr Programm vor versteckten Fehler schützen.