PHP中容易被忽视的数据类型问题
2011-06-12 11:09
253 查看
原文:http://i.80tvb.com/php-strpos-datatypes/
今天收到一求助:
我在PHP中使用strpos()来判断一个”http://”是否存在于变量$icon中,但得到的结果却始终显示为false
代码如下:
其实这是一个很容易被忽视的错误。
strpos()返回的一个字符串在另一个字符串中首次出现的位置(从0算起),如果不存在则返回false,在该示例中,问题的关键就在于即使
strpos()查找到’http://’存在于$icon中,但如果它是在$icon的开头位置,那么返回的值将是0(strpos()说:我找
到’http://’这家伙了,它在第0个位置。)。但PHP的“==”和“!=”运算符会把0、false以及1、true认为是相同的值。以至于返回
值0与返回值false均被认为是布尔值“否”了。
解决办法:
使用全等(===)或全不等(!==)符号代替
–EOF–
今天收到一求助:
我在PHP中使用strpos()来判断一个”http://”是否存在于变量$icon中,但得到的结果却始终显示为false
代码如下:
if ( ! strpos ( $icon , 'http://' ) ) { $icon = 'http://www.google.com' . $icon ; }
其实这是一个很容易被忽视的错误。
strpos()返回的一个字符串在另一个字符串中首次出现的位置(从0算起),如果不存在则返回false,在该示例中,问题的关键就在于即使
strpos()查找到’http://’存在于$icon中,但如果它是在$icon的开头位置,那么返回的值将是0(strpos()说:我找
到’http://’这家伙了,它在第0个位置。)。但PHP的“==”和“!=”运算符会把0、false以及1、true认为是相同的值。以至于返回
值0与返回值false均被认为是布尔值“否”了。
解决办法:
使用全等(===)或全不等(!==)符号代替
if ( strpos ( $icon , 'http://' ) === false ) { $icon = 'http://www.google.com' . $icon ; }
–EOF–
相关文章推荐
- 容易忽视的oracle函数问题--数据类型
- 一道小题引出的php数据类型转换问题
- 容易被忽视的一些PHP问题
- php中关于codeigniter的xmlrpc的类在进行数据交换时的类型问题
- Java基础之基本数据类型容易忽略的问题
- Java基本数据类型——Java基本数据类型汇总、自动类型转换(指导图)、强制类型转型乱码问题、运算时类型提升容易犯的错误常见问题汇总
- 一个容易忽视的Oracle数据安全问题
- Java基础篇笔记(二) ---容易忽视的表达式结果的类型,求概率、几率问题
- OpenCV:imshow()/imwrite()数据类型问题
- MSsql数据库修改数据类型Float到decimal的问题处理
- C/C++之类型输出,乘法表,古典问题,数据输入输出
- php数据类型比较转换
- C51程序unsigned和signed类型数据判断时候需要注意的问题
- 利用php unpack读取c struct的二进制数据,struct内存对齐引起的一些问题
- 游标类型产生的数据检索问题
- Linq to Sql 更新数据时容易忽略的问题
- 02-01 Java关键字、标识符、注释、常量和进制问题、变量和数据类型
- PHP数据类型转换
- php header(location)容易被忽略小问题