PHP int 关键字
最后修改于 2025 年 4 月 16 日
PHP 的 int 关键字代表整数数据类型。整数是没有小数点的整个数字。它们可以是正数、负数或零。PHP 支持各种表示法和大小的整数。
基本定义
整数是集合 ℤ = {..., -2, -1, 0, 1, 2, ...} 中的一个数字。在 PHP 中,整数可以用十进制、十六进制、八进制或二进制表示法指定。
整数的大小取决于平台。通常是 32 位或 64 位。PHP 不支持无符号整数。整数溢出会导致转换为 float。
int 类型可用于类型声明和类型转换。PHP 在需要时会自动转换类型,但为了清晰和安全,首选显式类型声明。
基本整数声明
此示例显示了如何在 PHP 中声明和使用基本整数变量。
<?php declare(strict_types=1); $age = 25; $temperature = -10; $population = 8000000; echo "Age: $age\n"; echo "Temperature: $temperature°C\n"; echo "Population: $population\n";
该代码声明了三个具有不同值的整数变量。正数、负数和大数都是有效的整数。echo 语句会输出带有描述性文本的值。
不同的整数表示法
此示例演示了在 PHP 中表示整数的各种方法。
<?php declare(strict_types=1); $decimal = 42; $hexadecimal = 0x2A; $octal = 052; $binary = 0b101010; echo "Decimal: $decimal\n"; echo "Hexadecimal: $hexadecimal\n"; echo "Octal: $octal\n"; echo "Binary: $binary\n";
所有变量都用不同的表示法表示相同的值 (42)。十六进制以 0x 开头,八进制以 0 开头,二进制以 0b 开头。PHP 在输出时会自动将它们转换为十进制。
类型转换为整数
此示例显示了如何显式将值转换为整数。
<?php declare(strict_types=1); $floatNum = 3.14; $stringNum = "123"; $boolVal = true; $int1 = (int) $floatNum; $int2 = intval($stringNum); $int3 = (int) $boolVal; echo "Float to int: $int1\n"; echo "String to int: $int2\n"; echo "Bool to int: $int3\n";
该代码演示了两种转换方法:(int) 前缀和 intval() 函数。浮点数会被截断(而不是四舍五入)。字符串会转换为数字,否则为 0。true 变为 1,false 变为 0。
整数类型声明
此示例演示了在函数中使用 int 类型声明。
<?php
declare(strict_types=1);
function addNumbers(int $a, int $b): int {
return $a + $b;
}
$result = addNumbers(5, 7);
echo "5 + 7 = $result\n";
该函数需要两个整数参数并返回一个整数。使用 strict_types=1 时,PHP 会强制执行精确的类型匹配。这可以防止自动类型转换,使代码更具可预测性。
整数运算
此示例展示了整数的常见算术运算。
<?php declare(strict_types=1); $a = 10; $b = 3; echo "Addition: " . ($a + $b) . "\n"; echo "Subtraction: " . ($a - $b) . "\n"; echo "Multiplication: " . ($a * $b) . "\n"; echo "Division: " . intdiv($a, $b) . "\n"; echo "Modulus: " . ($a % $b) . "\n"; echo "Exponentiation: " . ($a ** $b) . "\n";
该代码执行基本的数学运算。请注意,使用 intdiv() 进行整数除法。常规除法 (/) 返回浮点数。模运算符 (%) 返回除法后的余数。
整数溢出
此示例演示了当整数超出其最大大小时会发生什么。
<?php declare(strict_types=1); $largeNumber = PHP_INT_MAX; echo "Max integer: $largeNumber\n"; $overflow = $largeNumber + 1; echo "Overflow: $overflow\n"; var_dump($largeNumber); var_dump($overflow);
PHP_INT_MAX 是支持的最大整数。加 1 会导致溢出,将结果转换为 float。var_dump() 会显示实际类型。在 64 位系统上,PHP_INT_MAX 通常是 9223372036854775807。
整数函数
此示例展示了处理整数的有用 PHP 函数。
<?php
declare(strict_types=1);
$number = -42;
$hex = 0x1A;
echo "Absolute value: " . abs($number) . "\n";
echo "Is $number int? " . (is_int($number) ? 'Yes' : 'No') . "\n";
echo "Hex $hex to decimal: " . hexdec('1A') . "\n";
echo "Random number: " . rand(1, 100) . "\n";
echo "Is 7 even? " . (7 % 2 === 0 ? 'Yes' : 'No') . "\n";
该代码演示了几个与整数相关的函数。abs() 获取绝对值。is_int() 检查类型。hexdec() 转换十六进制。rand() 生成随机数。模运算符用于检查奇偶数。
最佳实践
- 类型安全:使用 strict_types=1 可获得可预测的行为。
- 验证:在处理用户输入时,请检查 is_int()。
- 溢出:请注意特定于平台的整数限制。
- 可读性:对大数字使用下划线 (1_000_000)。
- 运算:整数除法请使用 intdiv()。
来源
本教程介绍了 PHP 整数数据类型,并通过实际示例展示了声明、运算、类型转换和常用函数。
作者
列出 所有 PHP 教程。