PHP 프로그래밍에서 CEIL () 함수는 일반적으로 사용되는 수학적 함수로, 숫자를 위쪽으로 반올림하는 것, 즉 숫자보다 크거나 동일한 가장 작은 정수를 반환합니다. 함수는 다음과 같이 정의됩니다.
float ceil ( float $value )
일반적으로 Ceil () 함수의 인수는 숫자 유형이거나 PHP에 의해 자동으로 숫자로 변환 될 수있는 문자열입니다. 그러나 들어오는 중국어 나 불법 줄이 있으면 어떻게됩니까? 이 기사는 CEIL () 함수가 그러한 입력 하에서 어떻게 수행되는지, 비수막 입력을 다루는 방법을 자세히 살펴 봅니다.
간단한 통화 예 :
<?php
echo ceil(4.2); // 산출 5
echo ceil(-3.7); // 산출 -3
?>
Ceil ()은 부동 소수점 번호를 위쪽으로 반올림하고 음수 처리에주의를 기울입니다. 위쪽으로 둥글게 한 결과는 더 큰 값의 정수입니다 (예 : -3.7은 -3로 둥글게).
<?php
echo ceil("중국인"); // ?
echo ceil("abc123"); // ?
echo ceil("123abc"); // ?
?>
PHP는 기능 매개 변수를 유형으로 변환하려고 시도하고 Ceil () 로 수신 된 매개 변수는 플로트 로 변환됩니다. 전환 과정에서 PHP는 문자열의 시작부터 숫자 문자를 구문 분석하고 첫 번째 불법 숫자 문자가 발생할 때 변환을 중지합니다. 문자열의 시작을 숫자로 변환 할 수없는 경우 결과는 0입니다.
특정 증상은 다음과 같습니다.
"중국어" : 문자열의 시작은 숫자가 아닌 문자이며 부동 소수점 번호로 변환되므로 천장의 결과 ( "중국어") 는 0입니다.
"ABC123" : 또한 비 번호로 시작하고 변환 결과는 0이며 0을 반환합니다.
"123ABC" : 문자열은 숫자 123 으로 시작합니다. A가 발생하면 변환이 중지되어 123으로 변환됩니다. CEIL ( "123ABC") 의 결과는 123입니다.
샘플 코드 :
<?php
var_dump(ceil("중국인")); // float(0)
var_dump(ceil("abc123")); // float(0)
var_dump(ceil("123abc")); // float(123)
?>
산출:
float(0)
float(0)
float(123)
PHP는 위의 유형의 암시 적 변환을 허용하지만 실제 프로젝트에서는 예상치 못한 결과를 피하기 위해 비수 문자열을 Ceil () 로 전달해야합니다.
IS_NUMERIC ()를 사용하여 입력이 숫자인지 여부를 감지하십시오 .
<?php
$input = "중국인";
if (is_numeric($input)) {
echo ceil($input);
} else {
echo "입력은 숫자가 아닙니다,정렬 할 수 없습니다";
}
?>
엄격한 필터링을 위해 Filter_var ()를 사용하십시오 .