> php教程 > php手册 > PHP中用 ^_^==^_^ 作字符串值判断时的注意事项

PHP中用 ^_^==^_^ 作字符串值判断时的注意事项

WBOY
풀어 주다: 2016-06-21 09:07:08
원래의
1311명이 탐색했습니다.

字符串

刚好想起来了,顺便在这里发一下. 估计很多新手或老手都会犯这个错误.

由于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.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 추천
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿