回 true;否则用==,!=则会将字符串自动转换成相应的类型,以便进行比较.
22 == "22"; //
返回 true
22 === "22"; // 返回 false
“
”
正因为这样,所以我们的程序时常会发生一些想不到的 意外 :
0 == "我爱你"; // 返回 true
1 == "1 我爱你";// 返回 true
PHP 里还有这样一组用于字符串比较的函数:strcmp,strcasecmp,strncasecmp(), strncmp(),
它们都是如果前者比后者大,则返回大于 0 的整数;如果前者比后者小,则返回小于 0 的
整数;如果两者相等,则返回 0.
它们比较的原理与 其它语言的规则都是一样的。
strcmp 是用于区分大小写(即大小写敏感)的字符串比较:
echo strcmp("abcdd", "aBcde"); //
返回 1 (>0),
比较的是 "b"和"B"
strcasecmp 用于不区分大小写的字符串比较:
echo strcasecmp("abcdd", "aBcde"); //
返回 -1 (<0), 比较的是"d"和"e"
strncmp 用于比较字符串的一部分,从字符串的开头开始比较,第三个参数,为要比较的
长度:
echo strncmp("abcdd", "aBcde", 3); //
返回 1 (>0),
比较了 abc
和 aBc
strncasecmp 用于不区分大小写的比较字符串的一部分,从字符串的开头开始比较,第三
个参数,为要比较的长度:
echo strncasecmp("abcdd", "aBcde", 3); //
返回 0,
比较了 abc
和 aBc, 由于不区分大小写,所
以两者是相同的。
还有一种情况是单单比较字符串大小,达不到我们预定的要求,比如照常理 10.gif 会比
5.gif
大,但如果应用上面几个函数,就会返回 -1,
即表示 10.gif 比 5.gif,针对这种情况,
PHP 提供了两个自然对比的函数 strnatcmp,strnatcasecmp:
echo strnatcmp("10.gif", "5.gif"); //
返回 1 (>0)
echo strnatcasecmp("10.GIF", "5.gif"); //
返回 1 (>0)
8、字符串的替换
替换的意义在于将一个字符串的一部分进行改变,使之成为别外一个新的字符串,以满
足新的要求。PHP 里通常用 str_replace("要替换的内容", "要取代原内容的字符串", "原字符
串")进行替换。
echo str_replace("iwind", "kiki", "i love iwind, iwind said"); //
将输出 "i love kiki, kiki said"
即将 原字符串中的所有"iwind"都替换成了"kiki".
str_replace
是大小写敏感的,所以对你不能设想用 str_replace("Iwind", "kiki",...)替换原字符
串中的"iwind".
str_replace 还可以实现多对一,多对多的替换,但无法实现一对多的替换:
echo str_replace(array("iwind", "kiki"), "people", "i love kiki, iwind said");
将会输出