Integer 锟斤拷锟斤拷

integer 锟角硷拷锟斤拷 ? = {..., -2, -1, 0, 1, 2, ...} 锟叫碉拷某锟斤拷锟斤拷锟斤拷

锟轿硷拷锟斤拷

锟斤法

锟斤拷锟斤拷值锟斤拷锟斤拷使锟斤拷十锟斤拷锟狡o拷十锟斤拷锟斤拷锟狡o拷锟剿斤拷锟狡伙拷锟斤拷锟斤拷票锟绞撅拷锟角帮拷锟斤拷锟皆硷拷锟较匡拷选锟侥凤拷锟脚o拷- 锟斤拷锟斤拷 +锟斤拷锟斤拷

锟斤拷锟斤拷锟狡憋拷锟斤拷 integer 锟斤拷 PHP 5.4.0 锟斤拷锟斤拷谩锟�

要使锟矫八斤拷锟狡憋拷铮拷锟斤拷锟角帮拷锟斤拷锟斤拷锟斤拷 0锟斤拷锟姐)锟斤拷要使锟斤拷十锟斤拷锟斤拷锟狡憋拷铮拷锟斤拷锟角帮拷锟斤拷锟斤拷锟斤拷 0x锟斤拷要使锟矫讹拷锟斤拷锟狡憋拷铮拷锟斤拷锟角帮拷锟斤拷锟斤拷锟斤拷 0b锟斤拷

Example #1 锟斤拷锟斤拷锟斤拷锟街憋拷锟�

<?php
$a 
1234// 十锟斤拷锟斤拷锟斤拷
$a = -123// 锟斤拷锟斤拷
$a 0123// 锟剿斤拷锟斤拷锟斤拷 (锟斤拷锟斤拷十锟斤拷锟斤拷 83)
$a 0x1A// 十锟斤拷锟斤拷锟斤拷锟斤拷 (锟斤拷锟斤拷十锟斤拷锟斤拷 26)
$a 0b11111111// 锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷 (锟斤拷锟斤拷十锟斤拷锟斤拷 255)
?>

integer 锟斤法锟侥结构锟斤拷式锟角o拷

decimal     : [1-9][0-9]*
            | 0

hexadecimal : 0[xX][0-9a-fA-F]+

octal       : 0[0-7]+

binary      : 0b[01]+

integer     : [+-]?decimal
            | [+-]?hexadecimal
            | [+-]?octal
            | [+-]?binary

锟斤拷锟斤拷锟斤拷锟斤拷锟街筹拷锟斤拷平台锟叫关o拷锟斤拷锟斤拷通锟斤拷锟斤拷锟街碉拷谴锟皆硷拷锟绞拷冢锟�32 位锟叫凤拷锟脚o拷锟斤拷64 位平台锟铰碉拷锟斤拷锟街低拷锟斤拷谴锟皆� 9E18锟斤拷锟斤拷锟斤拷 Windows 锟斤拷 PHP 7 锟斤拷前锟侥版本锟斤拷锟斤拷锟斤拷 32 位锟侥★拷 PHP 锟斤拷支锟斤拷锟睫凤拷锟脚碉拷 integer锟斤拷Integer 值锟斤拷锟街筹拷锟斤拷锟斤拷锟矫筹拷锟斤拷 PHP_INT_SIZE锟斤拷锟斤拷示锟斤拷锟斤拷 PHP 4.4.0 锟斤拷 PHP 5.0.5锟斤拷锟斤拷锟街碉拷锟斤拷锟斤拷贸锟斤拷锟� PHP_INT_MAX 锟斤拷锟斤拷示锟斤拷锟斤拷小值锟斤拷锟斤拷锟斤拷 PHP 7.0.0 锟斤拷锟皆猴拷陌姹撅拷锟斤拷贸锟斤拷锟� PHP_INT_MIN 锟斤拷示锟斤拷

Warning

PHP 7 锟斤拷前锟侥版本锟斤,锟斤拷锟斤拷锟剿斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷一锟斤拷锟角凤拷锟斤拷锟街o拷锟斤拷 8 锟斤拷 9锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷只岜伙拷锟斤拷浴锟絇HP 7 锟皆后,伙拷锟斤拷锟� Parse Error锟斤拷

锟斤拷锟斤拷锟斤拷锟�

锟斤拷锟斤拷锟斤拷锟斤拷锟揭伙拷锟斤拷锟斤拷锟斤拷锟斤拷锟� integer 锟侥凤拷围锟斤拷锟斤拷锟结被锟斤拷锟斤拷为 float锟斤拷同锟斤拷锟斤拷锟街达拷械锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟� integer 锟斤拷围锟斤拷也锟结返锟斤拷 float锟斤拷

Example #2 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)
?>

Example #3 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锟斤拷 值锟斤拷锟斤拷锟斤拷锟斤拷小锟斤拷锟斤拷锟街o拷强锟斤拷转锟斤拷为 integer锟斤拷锟斤拷锟斤拷使锟斤拷 round() 锟斤拷锟斤拷锟斤拷锟皆革拷锟矫地斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟诫。

<?php
var_dump
(25/7);         // float(3.5714285714286) 
var_dump((int) (25/7)); // int(3)
var_dump(round(25/7));  // float(4) 
?>

转锟斤拷为锟斤拷锟斤拷

要锟斤拷确锟截斤拷一锟斤拷值转锟斤拷为 integer锟斤拷锟斤拷 (int) 锟斤拷 (integer) 强锟斤拷转锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟铰讹拷锟斤拷锟斤拷要强锟斤拷转锟斤拷锟斤拷锟斤拷为锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷炭锟斤拷锟斤拷锟揭伙拷锟� integer 锟斤拷锟斤拷时锟斤拷值锟斤拷锟皆讹拷转锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷通锟斤拷锟斤拷锟斤拷 intval() 锟斤拷锟斤拷一锟斤拷值转锟斤拷锟斤拷锟斤拷锟酵★拷

锟斤拷 resource 转锟斤拷锟斤拷 integer 时锟斤拷 锟斤拷锟斤拷锟斤拷锟� PHP 锟斤拷锟斤拷时为 resource 锟斤拷锟斤拷锟轿ㄒ伙拷锟皆达拷拧锟�

锟轿硷拷锟斤拷锟斤拷锟斤拷转锟斤拷锟斤拷锟叫憋拷锟斤拷

锟斤拷锟斤拷锟斤拷值转锟斤拷

FALSE 锟斤拷锟斤拷锟斤拷锟斤拷 0锟斤拷锟姐)锟斤拷TRUE 锟斤拷锟斤拷锟斤拷锟斤拷 1锟斤拷壹锟斤拷锟斤拷

锟斤拷锟斤拷锟斤拷锟斤拷转锟斤拷

锟斤拷锟接革拷锟斤拷锟斤拷转锟斤拷锟斤拷锟斤拷锟斤拷时锟斤拷锟斤拷锟斤拷锟斤拷取锟斤拷锟斤拷

锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟轿э拷锟�32 位平台锟斤拷通锟斤拷为 +/- 2.15e+9 = 2^31锟斤拷64 位平台锟铰o拷锟斤拷锟斤拷 Windows锟斤拷通锟斤拷为 +/- 9.22e+18 = 2^63锟斤拷锟斤拷锟斤拷锟斤拷为未锟斤拷锟藉,锟斤拷为没锟斤拷锟姐够锟侥撅拷锟饺革拷锟斤拷一锟斤拷确锟叫碉拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷诖锟斤拷锟斤拷锟斤拷没锟叫撅拷锟芥,锟斤拷锟斤拷没锟斤拷锟轿猴拷通知锟斤拷

Note:

PHP 7.0.0 锟斤拷NaN 锟斤拷 Infinity 锟斤拷转锟斤拷锟斤拷 integer 时锟斤拷锟斤拷锟斤拷锟斤拷 undefined 锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷平台锟斤拷锟斤拷锟角讹拷锟斤拷锟斤拷锟姐。

Warning

锟斤拷锟斤拷要锟斤拷未知锟侥凤拷锟斤拷强锟斤拷转锟斤拷为 integer锟斤拷锟斤拷锟斤拷锟斤拷时锟结导锟铰诧拷锟斤拷预锟较的斤拷锟斤拷锟�

<?php
echo (int) ( (0.1+0.7) * 10 ); // 锟斤拷示 7!
?>

锟轿硷拷锟斤拷锟节革拷锟斤拷锟斤拷锟斤拷锟饺的撅拷锟斤拷锟斤拷

锟斤拷锟街凤拷锟斤拷转锟斤拷

锟轿硷拷锟街凤拷锟斤拷转锟斤拷为锟斤拷值锟斤拷

锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷转锟斤拷

Caution

没锟叫讹拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟阶拷锟轿拷锟斤拷偷锟斤拷锟轿拷锟�锟斤拷要锟斤拷锟斤拷锟轿猴拷锟斤拷锟叫碉拷锟斤拷为锟斤拷锟斤拷为锟斤拷锟斤拷未锟斤拷通知锟截改变。