打印

[php] php 查询后的结果都为字符串类型?

本主题由 kuhanzhu 于 2008-4-28 17:04 分类
表结构 如下
id int(11),
title varchar(255),

查询后的结果,所有的数据,都变成字符串string类型了

$row = mysql_fetch_array($result);
echo gettype($row['id']);

为什么id 被转成 string类型了,是不是php,mysql本身就是这么处理的?
刚测试gettype()返回的是string类型。

同楼下:Warning
Never use gettype() to test for a certain type, since the returned string may be subject to change in a future version. In addition, it is slow too, as it involves string comparison.

Instead, use the is_* functions.

我觉得,因为PHP是对类型不敏感的缘故吧。
所以1+a也可以。所以gettype('1')为字符型,is_numeric('1')为数字型,应该说,PHP使用函数判断前,自身就已经做过了类似转换或者判断到底该是字符型还是数字型吧。
所以id取出来的值,如果单纯去判断类型,则是字符型,但判断是否为整形,那就是整型,判断是否为字符型的话,应该也是字符型。
所以ID取出来的值,跟10加不会出错,跟'abc'连接,那也不会出错
松散。

[ 本帖最后由 kuhanzhu 于 2008-4-28 17:03 编辑 ]
乐于助人、严格管理、言多必失。无知者无罪。Keep your waiting,I am back.
编程资源:http://book.kuhanzhu.com
对管理有异议,请前往事务区进行投诉。请勿PM。
gettype('12') = string
is_numeric('12') = true;
手册里这么说
复制内容到剪贴板
代码:
不要使用 gettype() 来测试某种类型,因为其返回的字符串在未来的版本中可能需要改变。此外,由于包含了字符串的比较,它的运行也是较慢的。
使用 is_* 函数代替。
看来不能根据直接从数据库中,取出的值,来进行严格的比较

TOP

还在为头像烦恼?还在为不能关注好友动态烦忧?快来蓝色理想家园吧!
PHP对类型根本不敏感。。无所谓的。

TOP