Bei der PHP -Programmierung ist die CEIL () -Funktion eine häufig verwendete mathematische Funktion, die eine Zahl nach oben rundet, dh die kleinste ganze Zahl zurückgibt, die größer oder gleich der Zahl ist. Die Funktion ist wie folgt definiert:
float ceil ( float $value )
Normalerweise sind die Argumente der Funktion CEIL () ein numerischer Typ oder eine Zeichenfolge, die automatisch durch PHP in einen numerischen Konvertieren konvertiert werden kann. Aber was passiert, wenn die ankommenden chinesischen Charaktere oder illegalen Zeichenfolgen? In diesem Artikel wird detailliert untersucht, wie sich die Funktion CEIL () unter solchen Eingaben entwickelt und wie sie mit nicht numerischen Eingaben umgeht.
Einfacher Anrufbeispiel:
<?php
echo ceil(4.2); // Ausgabe 5
echo ceil(-3.7); // Ausgabe -3
?>
Ceil () rundet die schwimmende Punktzahl nach oben und achtet auf die Verarbeitung negativer Zahlen. Das Ergebnis von Absenkung nach oben ist eine Ganzzahl mit einem größeren Wert (z. B. -3,7, der nach oben auf -3 abrundet).
<?php
echo ceil("chinesisch"); // ?
echo ceil("abc123"); // ?
echo ceil("123abc"); // ?
?>
PHP versucht, die Funktionsparameter im Typ zu konvertieren, und die von Ceil () empfangenen Parameter werden in Floats konvertiert. Während des Konvertierungsprozesses versucht PHP, numerische Zeichen vom Beginn der Zeichenfolge zu analysieren und zu konvertieren, wenn der erste illegale numerische Zeichen auftritt. Wenn der Beginn der Zeichenfolge nicht in eine Zahl konvertiert werden kann, beträgt das Ergebnis 0.
Die spezifischen Manifestationen sind wie folgt:
"Chinesisch" : Der Beginn der Saite ist ein nicht numerischer Charakter und wird in eine schwimmende Punktzahl auf 0 umgewandelt, sodass das Ergebnis von Ceil ("Chinesisch" 0 ist.
"ABC123" : Außerdem beginnt das Konvertierungsergebnis 0 und gibt 0 zurück.
"123ABC" : Die Zeichenfolge beginnt mit der Nummer 123. Wenn A auftritt, wird die Umwandlung gestoppt und in 123 umgewandelt. Das Ergebnis von Ceil ("123abc") ist 123.
Beispielcode:
<?php
var_dump(ceil("chinesisch")); // float(0)
var_dump(ceil("abc123")); // float(0)
var_dump(ceil("123abc")); // float(123)
?>
Ausgabe:
float(0)
float(0)
float(123)
Obwohl PHP implizite Conversions der oben genannten Typen ermöglicht, sollten in tatsächlichen Projekten nicht numerische Zeichenfolgen an Ceil () vermieden werden, um unerwartete Ergebnisse zu vermeiden.
Verwenden Sie is_numeric (), um festzustellen, ob die Eingabe eine Zahl ist :
<?php
$input = "chinesisch";
if (is_numeric($input)) {
echo ceil($input);
} else {
echo "Die Eingabe ist keine Zahl,Nicht sortieren";
}
?>
Verwenden Sie filter_var () für die strengere Filterung :