정수는 집합 ℤ = {..., -2, -1, 0, 1, 2, ...}의 숫자입니다.
정수 값은 10진수, 16진수, 8진수 또는 2진수로 표시할 수 있으며 앞에 선택적 기호(- 또는 +)를 붙일 수 있습니다.
PHP 5.4.0부터 사용할 수 있는 이진 표현 정수입니다.
8진수 표현을 사용하려면 숫자 앞에 0이 와야 합니다. 16진수 표현을 사용하려면 숫자 앞에 0x가 와야 합니다. 이진 표현을 사용하려면 숫자 앞에 0b가 와야 합니다.
예제 #1 정수텍스트 표현
<?php $a = 1234; // 十进制数 $a = -123; // 负数 $a = 0123; // 八进制数 (等于十进制 83) $a = 0x1A; // 十六进制数 (等于十进制 26) ?>
정수의 공식적인 설명은 다음과 같습니다.
십진수 : [1-9][0-9 ] *
| 0
16진수 : 0[xX][0-9a-fA-F]+
8진수 : 0[0-7]+
: 0b[01]+
정수 : [+-]?16진수
| [+-]?8진수
|
상수 PHP_INT_SIZE로 표현할 수 있습니다. PHP 4.4.0 및 PHP 5.0.5부터 최대값은 PHP_INT_MAX 상수로 표현할 수 있습니다.
경고8진수(예: 8 또는 9)에 잘못된 숫자가 전달되면 나머지 숫자는 무시됩니다. 예제 #2 8진수의 이상한 점<?php var_dump(01090); // 八进制 010 = 十进制 8 ?>정수 오버플로주어진 숫자가 정수 범위를 초과하면
float. 마찬가지로 연산 결과가 정수 범위를 초과하는 경우에도 float가 반환됩니다. 예제 #3 32비트 시스템에서 정수 오버플로
<?php $large_number = 2147483647; var_dump($large_number); // int(2147483647) $large_number = 2147483648; var_dump($large_number); // float(2147483648) $million = 1000000; $large_number = 50000 * $million; var_dump($large_number); // float(50000000000) ?>
예제 #4 64비트 시스템에서 정수 오버플로
<?php $large_number = 9223372036854775807; var_dump($large_number); // int(9223372036854775807) $large_number = 9223372036854775808; var_dump($large_number); // float(9.2233720368548E+18) $million = 1000000; $large_number = 50000000000000 * $million; var_dump($large_number); // float(5.0E+19) ?>
정수 나누기에
연산자가 없습니다. PHP. 1/2는 float 0.5를 생성합니다. 값을 소수 부분 없이 정수로 캐스팅하거나 더 나은 반올림을 위해 round() 함수 를 사용할 수 있습니다.
<?php var_dump(25/7); // float(3.5714285714286) var_dump((int) (25/7)); // int(3) var_dump(round(25/7)); // float(4) ?>정수로 변환값을 명시적으로 정수로 변환하려면 (int) 또는 (integer) 캐스트를 사용하세요. 그러나 대부분의 경우에는 캐스팅이 필요하지 않습니다. 연산자, 함수 또는
참조: 유형 변환 차별
. FALSE는 0(영)을 생성하고 TRUE는 1(1)을 생성합니다.부동소수
<?php echo (int) ( (0.1+0.7) * 10 ); // 显示 7! ?>에는 다른 유형을 정수로 변환하기 위한 정의된 동작이 없습니다. 예고 없이 변경될 수 있으므로 기존 동작에 의존하지 마십시오.
위 내용은 PHP 데이터 유형 정수 구문 분석(정수)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!