为什么从数据库读取后int值变为字符串?

时间:2011-12-12 08:49:34

标签: php database yii

在我的Yii框架项目中,当我使用Active Directory从列数据类型都是 numeric 的数据库中读取数据时,我使用var_dump得到了字符串类型值。我感到很困惑。

2 个答案:

答案 0 :(得分:2)

由于php是一种动态类型语言,因此接口处的数据类型常常令人费解。

通常当从数据库中检索数据时,驱动程序并不打算将每个值转换为php中的类型,这类似于mysql中的数据类型(或者你也可以说,php不够智能)所以自动);你必须自己做转换。幸运的是,这很容易实现:

$yourvar = (int)$yourvar;

答案 1 :(得分:0)

Yii CActiveRecord在执行查询时动态创建模型变量,默认情况下它们是字符串类型。他们使用_get&设置动态创建的魔术方法,并且它们不设置类型,因此它们是字符串类型。

由于PHP不是强类型语言,因此您不必担心这一点,您可以更改其类型。