PHP 简明教程

PHP 数值

1. PHP 数字

PHP 中主要有三种数值类型:

  • Integer(整型)
  • Float(浮点型)
  • Numeric Strings(数值字符串)

此外,PHP 还有两种用于数字的特殊数据类型:

  • Infinity(无穷大)
  • NaN(非数字)

当您为数值类型的变量赋值时,它们就会被创建:

示例

$a = 5;
$b = 5.34;
$c = "25";

要验证 PHP 中任何变量/对象的数据类型,可以使用 var_dump() 函数:

示例

var_dump($a);
var_dump($b);
var_dump($c);

2. PHP is_int() 函数

is_int() 函数用于检查变量的类型是否为整型(integer)。

整型是没有小数部分的数字:2, 256, -256, 10358, -179567 等都是整型。

示例

检查变量是否为整型:

$x = 5985;
var_dump(is_int($x));

$y = 59.85;
var_dump(is_int($y));

在 32 位系统中,整型数据类型的范围是 -2147483648 到 2147483647;在 64 位系统中则是 -9223372036854775808 到 9223372036854775807。大于(或小于)这个限制的值将会被存储为浮点型(float),因为它超出了整型的限制。

注意:另一个需要了解的重要事项是,即使 4 * 2.5 等于 10,其结果也会被存储为 float,因为其中一个操作数是 float(2.5)。

整型的规则如下:

  • 整型必须至少包含一个数字
  • 整型不能包含小数点
  • 整型可以是正数或负数
  • 整型可以使用三种格式指定:十进制(基数 10)、十六进制(基数 16,以 0x 开头)、八进制(基数 8,以 0 开头)或二进制(基数 2,以 0b 开头)

PHP 为整型提供了以下预定义常量:

  • PHP_INT_MAX - 支持的最大整数
  • PHP_INT_MIN - 支持的最小整数
  • PHP_INT_SIZE - 整数的大小(以字节为单位)

3. PHP is_float() 函数

is_float() 函数用于检查变量的类型是否为浮点型(float)。

浮点数是带有小数点或以指数形式表示的数字:2.0, 256.4, 10.358, 7.64E+5, 5.56E-5 都是浮点数。

示例

检查变量是否为浮点型:

$x = 10.365;
var_dump(is_float($x));

浮点数据类型通常可以存储最大约为 1.7976931348623E+308 的值(取决于平台),并且最多具有 14 位精度。

PHP 为浮点数提供了以下预定义常量(自 PHP 7.2 起):

  • PHP_FLOAT_MAX - 可表示的最大浮点数
  • PHP_FLOAT_MIN - 可表示的最小正浮点数
  • PHP_FLOAT_DIG - 可以四舍五入为浮点数并恢复原值而不会损失精度的十进制数字位数
  • PHP_FLOAT_EPSILON - 可表示的最小正数 x,使得 x + 1.0 != 1.0

4. PHP 无穷大(Infinity)

PHP 的 is_finite() 函数检查一个值是否为有限的。如果一个值在该平台上允许的 PHP 浮点数范围内,则它是有限的。

PHP 的 is_infinite() 函数检查一个值是否为无限的。如果一个值超出了该平台上允许的 PHP 浮点数范围,则它是无限的。

示例

检查一个数值是否无限大:

$x = 1.9e411;
var_dump(is_infinite($x));

5. PHP NaN(非数字)

NaN 代表 "Not A Number"(非数字)。

无效的数学运算会返回 NaN。

is_nan() 函数用于检查一个值是否为 "非数字"(NaN)。

示例

无效的计算将返回一个 NaN 值,并使用 is_nan() 来进行检查:

$x = acos(8);
var_dump($x);

// 检查值是否不为数字 (NaN)
var_dump(is_nan($x));

6. PHP 数字与数值字符串

is_numeric() 函数用于检查一个变量是否为数字或数值字符串。

如果变量是数字或数值字符串,该函数返回 true,否则返回 false

示例

检查变量是否为数字或数值字符串:

$x = 5985;
var_dump(is_numeric($x));

$x = "5985";
var_dump(is_numeric($x));

$x = "59.85" + 100;
var_dump(is_numeric($x));

$x = "Hello";
var_dump(is_numeric($x));

7. 获取变量的整型值

intval() 函数用于获取变量的整型值。

示例

获取浮点数和字符串的整型值:

$x = 23465.768;
echo intval($x);

echo "<br>";

$x = "23465.768";
echo intval($x);