Heim > php教程 > php手册 > Hauptteil

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

WBOY
Freigeben: 2016-06-21 09:07:08
Original
1284 Leute haben es durchsucht

字符串

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

由于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() 比较好



Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage