千家信息网

Yii2数据库的INT类型怎么转换为PHP类型

发表于:2025-01-25 作者:千家信息网编辑
千家信息网最后更新 2025年01月25日,本篇内容主要讲解"Yii2数据库的INT类型怎么转换为PHP类型",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Yii2数据库的INT类型怎么转换为PHP类
千家信息网最后更新 2025年01月25日Yii2数据库的INT类型怎么转换为PHP类型

本篇内容主要讲解"Yii2数据库的INT类型怎么转换为PHP类型",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Yii2数据库的INT类型怎么转换为PHP类型"吧!

Yii2对于数据库的int类型转换到php类型时,会根据server 环境,决定是integer还是string

如果是32位服务器, PHP_INT_SIZE=4, 64位服务器,PHP_INT_SIZE=8.

也就是说,如果DB的int类型超过了PHP的int最大值,则会转为string。

if ($column->type === 'bigint') {    return PHP_INT_SIZE === 8 && !$column->unsigned ? 'integer' : 'string';} elseif ($column->type === 'integer') {    return PHP_INT_SIZE === 4 && $column->unsigned ? 'string' : 'integer';}

源码:yii2\db\Schema.php

/** * Extracts the PHP type from abstract DB type. * @param ColumnSchema $column the column schema information * @return string PHP type name */protected function getColumnPhpType($column){    static $typeMap = [        // abstract type => php type        self::TYPE_TINYINT => 'integer',        self::TYPE_SMALLINT => 'integer',        self::TYPE_INTEGER => 'integer',        self::TYPE_BIGINT => 'integer',        self::TYPE_BOOLEAN => 'boolean',        self::TYPE_FLOAT => 'double',        self::TYPE_DOUBLE => 'double',        self::TYPE_BINARY => 'resource',        self::TYPE_JSON => 'array',    ];    if (isset($typeMap[$column->type])) {        if ($column->type === 'bigint') {            return PHP_INT_SIZE === 8 && !$column->unsigned ? 'integer' : 'string';        } elseif ($column->type === 'integer') {            return PHP_INT_SIZE === 4 && $column->unsigned ? 'string' : 'integer';        }        return $typeMap[$column->type];    }    return 'string';}

到此,相信大家对"Yii2数据库的INT类型怎么转换为PHP类型"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

0