今天在看一些面试题的时候遇到的一个关于strcmp()返回值的细节问题

先看代码

$x=array("aaa","","ccc","ddd","");
$str = "LAMP";
$str1 = "LAMPBrother";
$strc = strcmp($str,$str1);
echo $strc;
switch ($strc){
case 1:
echo"str > str1";
break;
case -1:
echo"str < str1";
break;
case 0:
echo"str=str1";
break;
default:
echo "str <> str1";
}

在文档中关于strcmp()的返回值 是这样说的

返回值

如果 str1 小于 str2 返回 < 0; 如果 str1 大于 str2 返回 > 0;如果两者相等,返回 0。

其实当返回值小于零或者大于零的时候,最终返回的是 正负号乘以相差的字符数的值

就如此题 最后返回值就是 -1*7=-7;

所以最后的答案是str<>str1;

 



原文地址:https://www.cnblogs.com/sharedistance/p/4984848.html