background image

回 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"); 
将会输出