ZetCode

PHP int 关键字

最后修改于 2025 年 4 月 16 日

PHP 的 int 关键字代表整数数据类型。整数是没有小数点的整个数字。它们可以是正数、负数或零。PHP 支持各种表示法和大小的整数。

基本定义

整数是集合 ℤ = {..., -2, -1, 0, 1, 2, ...} 中的一个数字。在 PHP 中,整数可以用十进制、十六进制、八进制或二进制表示法指定。

整数的大小取决于平台。通常是 32 位或 64 位。PHP 不支持无符号整数。整数溢出会导致转换为 float。

int 类型可用于类型声明和类型转换。PHP 在需要时会自动转换类型,但为了清晰和安全,首选显式类型声明。

基本整数声明

此示例显示了如何在 PHP 中声明和使用基本整数变量。

basic_int.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 中表示整数的各种方法。

notations.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 在输出时会自动将它们转换为十进制。

类型转换为整数

此示例显示了如何显式将值转换为整数。

casting.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 类型声明。

type_declaration.php
<?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 会强制执行精确的类型匹配。这可以防止自动类型转换,使代码更具可预测性。

整数运算

此示例展示了整数的常见算术运算。

operations.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() 进行整数除法。常规除法 (/) 返回浮点数。模运算符 (%) 返回除法后的余数。

整数溢出

此示例演示了当整数超出其最大大小时会发生什么。

overflow.php
<?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 函数。

functions.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() 生成随机数。模运算符用于检查奇偶数。

最佳实践

来源

PHP 整数文档

本教程介绍了 PHP 整数数据类型,并通过实际示例展示了声明、运算、类型转换和常用函数。

作者

我叫 Jan Bodnar,是一名充满热情的程序员,拥有丰富的编程经验。我自 2007 年以来一直在撰写编程文章。迄今为止,我已撰写了 1400 多篇文章和 8 本电子书。我在编程教学方面有十多年的经验。

列出 所有 PHP 教程