溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Yii2數(shù)據(jù)庫(kù)的INT類型怎么轉(zhuǎn)換為PHP類型

發(fā)布時(shí)間:2021-09-03 19:15:58 來(lái)源:億速云 閱讀:165 作者:chen 欄目:大數(shù)據(jù)

本篇內(nèi)容主要講解“Yii2數(shù)據(jù)庫(kù)的INT類型怎么轉(zhuǎn)換為PHP類型”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“Yii2數(shù)據(jù)庫(kù)的INT類型怎么轉(zhuǎn)換為PHP類型”吧!

Yii2對(duì)于數(shù)據(jù)庫(kù)的int類型轉(zhuǎn)換到php類型時(shí),會(huì)根據(jù)server 環(huán)境,決定是integer還是string

如果是32位服務(wù)器, PHP_INT_SIZE=4, 64位服務(wù)器,PHP_INT_SIZE=8.

也就是說(shuō),如果DB的int類型超過(guò)了PHP的int最大值,則會(huì)轉(zhuǎn)為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';
}

到此,相信大家對(duì)“Yii2數(shù)據(jù)庫(kù)的INT類型怎么轉(zhuǎn)換為PHP類型”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI