字符串
刚好想起来了,顺便在这里发一下. 估计很多新手或老手都会犯这个错误.
由于PHP的数据类型会自动转换, 所以在比较字符串时应该当注意尽量不
要用 "==" 来判断,有时会误判断的.
还是看例子:
$var = "test";
$foo = 0;
echo ($var == $foo); // 结果输出是 1.
有人可能为觉得这个没什么呀,一般来说是不会有这种情况;
事实上当 $foo 的是函数返回值是很容易出这种误判断的.
实际一点,根据我的经验,当你用 MySQL 之类的数据库去执行
SELECT * FROM ... 这时 mysql_fetch...出来的 array 里的
key 有两组, 一组是按 field Name 的,一级是 0, 1, 2 ....如下:
$res = array(
0 => "abc", "key1" => "abc",
1 => "def", "key2" => "def"
);
通过循环读读数组的值,根据其key来判断作操作的话就有问题了.
foreach ($res as $k => $v) {
if ($k == "key2") { // 这里,当 $k 为 0 是表达式也为真!!
// ...
}
}
//
所以在出现字符串比较的地方还是中规一点用 strcmp() 比较好
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号