您好,登錄后才能下訂單哦!
本篇內容主要講解“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類型”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。