2014-12-28 10 views
0

PHP is_NaN() 함수가 아무 것도 반환하지 않는 것으로 나타납니다 (true 또는 false을 반환하지 않음). 다음은 아무것도 반환하지 않는 코드입니다.PHP is_NaN() 반환하지 않음

$id = 111; 
$booltest = is_nan($id); 
if ($booltest) { 
echo 'Invalid ID: "' . $id . '"'; 
exit(); 
} 

if 문을 실행하지 않습니다. 나는 PHP5를 사용하고있다. 누구든지이 문제를 해결할 방법을 알고 있습니까? 감사.

+4

이 코드의 예상 된 결과가 is_nan 해당 인스턴스에서 false를 반환하기 때문에, 자동으로 종료하는 것입니다. – JAL

+0

'$ id = NAN'으로 변경해보십시오. –

+0

이 함수는 사용자 정의 오류가 아닌 문자열로 설정된 경우에만 컴파일러 경고를 반환합니다. – CosineWaves

답변

1

is_nan() 변수의 데이터 유형이 숫자인지 확인하지 않습니다. not a number 또는 NaN이라는 숫자가 있는데, 숫자가 표현형이 아님을 알려줍니다. is_nan() 함수는 숫자가 NaN인지 여부를 확인합니다.

정수를 확인하려면 is_int()을 사용할 수 있습니다.

은 다음과 같이 :

$id = 111; 
$booltest = is_int($id); 
if ($booltest) { 
echo 'Invalid ID: "' . $id . '"'; 
exit(); 
} 
1

난 당신이 !is_numericis_nan을 가미하여 수 있습니다 생각합니다.

NaN ("숫자가 아님")은 실수로 표시 할 수없는 특정 수학적 결과를 나타내는 특정 부동 소수점 값입니다. 예를 들어, 음수의 제곱근 :

$x = sqrt(-1); 
var_dump($x); 
var_dump(is_nan($x)); 
var_dump(is_numeric($x)); 

출력 :

float(NAN) 
bool(true) 
bool(true) 

is_nan은 수레를 테스트 만 특정 float 값 NaN를위한 true 반환합니다. 문자열, 즉 문자열을 주면 인수가 float 유형이 아니기 때문에 null을 반환합니다. 대신 is_numeric을 찾고있는 것처럼 그래서 소리 :

$x = "asdf"; 
var_dump(is_nan($x)); 
var_dump(is_numeric($x)); 
$y = 111; 
var_dump(is_nan($y)); 
var_dump(is_numeric($y)); 

출력 :

NULL 
bool(false) 
bool(false) 
bool(true)