1.使用操作符比较
1)==和===
对于非字符串类型,==会将非字符串操作数转换为字符串类型。
===不会转换,参数类型不同就返回false。
2)<、>、<=和>=
(1) 如果操作数中有一个数字,就会将其他参数转换为数字。
(2)如果操作数都是字符串,会根据ASCLL码比较
常见的ASCLL码 0-9:48-57 A-Z:65-90 a-z: 97-122
2.使用函数比较
1)strcmp($str1,$str2)
比较方法:按照字节ASCLL值从两个字符串的首字节开始比较,如果相等则返回下一字节比较,直至比较结束。
相等,返回0;大于,返回1;小于,返回-1.
2)strcasecmp($str1,$str2) 比较字符串之前,将字符串全部转换为小写。
注意 strcmp函数会将数字转换成字符串,再进行比较。
特殊情况:
$str = "LAMPBB";
$str1 = "LAMP";
$strc = strcmp($str,$str1);
echo "$strc";
此时,$strc=1(符号位)*2(多的字符串数目)=2
$str = "LAMP";
$str1 = "LAMPBrother";
$strc = strcmp($str,$str1);
echo "$strc";
$strc=-1(符号位)*7(多的字符串数目)=-7
运算考察
3 / 2 = ? 3 – true = ? 4 * false = ? 5 % true = ?
5 && false = ? (true == “false”) = ? (true === 1) = ?
3 + “hello” = ? 3 . “hello” = ? “hello” + “world!” = ?
答案:
1.5 2 0 0
false true false
3 3hello 0
(true == “false”) = ?
==是比较运算符,遇见布尔值,按照布尔值比较。字符串不为空,转换为bool值为true。
比较规则
算数运算符:其他类型转换为整型、浮点型
true转换为1,FALSE 转换为0,NULL转换为0
字符串截取开始的数字字符,转换为整型或浮点型
逻辑运算符:其他类型转换为布尔类型
转换为0的 false、0、0.0、 空字符串和字符串“0”、 没有成员变量的数组、没有单元的对象、特殊类型NULL
字符串连接符:其他类型转换为字符串
NULL和false转换为空字符串
比较运算符:
如果出现布尔类型,进行布尔类型比较。
如果运算符左右都是字符串,进行字符串比较。
如果出现数值和字符串,进行数值比较。