当前位置:首页 > PHP

php intval代码实现

2026-03-13 07:23:32PHP

intval 函数的基本实现

PHP 的 intval 函数用于将变量转换为整数。以下是其核心逻辑的代码实现:

function intval($var, $base = 10) {
    if (is_int($var)) {
        return $var;
    }
    if (is_float($var)) {
        return (int)$var;
    }
    if (is_string($var)) {
        $var = trim($var);
        if ($var === '') {
            return 0;
        }
        if (ctype_digit($var) || ($var[0] === '-' && ctype_digit(substr($var, 1)))) {
            return (int)$var;
        }
        if (strpos($var, '.') !== false) {
            return (int)(float)$var;
        }
        if (strtolower(substr($var, 0, 2)) === '0x') {
            return (int)hexdec(substr($var, 2));
        }
        if ($base === 0) {
            if ($var[0] === '0') {
                $base = 8;
                $var = substr($var, 1);
            } else {
                $base = 10;
            }
        }
        return (int)base_convert($var, $base, 10);
    }
    if (is_bool($var)) {
        return $var ? 1 : 0;
    }
    if (is_null($var)) {
        return 0;
    }
    if (is_array($var)) {
        return count($var) ? 1 : 0;
    }
    if (is_object($var)) {
        if (method_exists($var, '__toString')) {
            return intval((string)$var, $base);
        }
        return 1;
    }
    return 0;
}

处理不同类型输入

字符串转换 字符串转换为整数时,会处理以下情况:

  • 空字符串返回 0
  • 纯数字字符串直接转换为整数
  • 包含小数点的字符串先转换为浮点数再取整
  • 十六进制格式(0x 开头)转换为十进制整数
  • 根据指定的进制参数进行转换

浮点数转换 直接截断小数部分转换为整数:

$float = 3.14;
$int = (int)$float; // 3

布尔值转换 true 转换为 1,false 转换为 0:

$bool = true;
$int = (int)$bool; // 1

数组转换 非空数组返回 1,空数组返回 0:

$arr = [1, 2, 3];
$int = (int)$arr; // 1

进制转换处理

intval 支持第二个参数指定进制(2-36):

$binary = '1010';
$decimal = intval($binary, 2); // 10

$hex = '1a';
$decimal = intval($hex, 16); // 26

当进制参数为 0 时,会根据字符串格式自动判断:

  • 0 开头视为八进制
  • 0x 开头视为十六进制
  • 其他视为十进制

边界情况处理

超大数字会返回 PHP 整数最大值:

$bigNum = '999999999999999999999999999999';
$int = intval($bigNum); // 9223372036854775807 (64位系统)

非数字字符串返回 0:

php intval代码实现

$str = 'abc';
$int = intval($str); // 0

标签: 代码php
分享给朋友:

相关文章

php实现分页

php实现分页

PHP实现分页的基本方法 使用原生PHP实现分页功能需要结合数据库查询和HTML展示。以下是核心实现步骤: 数据库查询与分页逻辑 // 连接数据库 $conn = new mysqli('loca…

php实现验证码

php实现验证码

PHP实现验证码的方法 使用GD库生成验证码 GD库是PHP中处理图像的扩展,可用于生成验证码图片。 <?php session_start(); $width = 120; $height…

php 实现自动收货

php 实现自动收货

PHP 实现自动收货功能 自动收货功能通常用于电商系统,在订单超过一定时间未手动确认收货时自动完成订单。以下是实现方法: 数据库设计 需要订单表包含以下关键字段: CREATE TABLE…

php实现聊天

php实现聊天

实现 PHP 聊天功能的方法 使用 WebSocket 和 PHP 实现实时聊天 WebSocket 是一种全双工通信协议,适合实现实时聊天功能。PHP 可以通过 Ratchet 库实现 WebSo…

php实现跳转

php实现跳转

PHP 实现页面跳转的方法 在 PHP 中实现页面跳转有多种方式,以下是常见的几种方法及其适用场景: 使用 header() 函数 通过 header() 函数发送 HTTP 头部信息实现跳转。注意…

php 实现下载

php 实现下载

PHP 实现文件下载的方法 使用 PHP 实现文件下载可以通过设置 HTTP 头信息,强制浏览器将文件作为附件下载而非直接打开。 基本下载实现 $file_path = 'path/to/your/…