请问当strcmp比较的两个参数的长度不一样的时候返回什么呢,下面的两个字符串,他们的前面都相同,但是第二个的长度多了brother这个字符串,strcmp函数返回的结果不是只有0,“<0”,“>0”吗?下面的结果为什么都不是呢?<?php
$str = "LAMP";
$str1 = "LAMPBrother";
$strc = strcmp($str,$str1);
switch ($strc){
case 1:
echo "str>str1";
case -1:
echo "str<str1";
case 0:
echo "str=str1";
default:
echo "str<>str1";
}
?>

解决方案 »

  1.   

    返回值肯定不是0,不一定是1,不一定是-1,default还有可能。
    你直接echo $strc看看是什么结果。
      

  2.   

    strcmp 返回结果不是只有 0 -1 1你应该试试var_dump(strcmp($str,$str1));exit;就知道了
    另外case,通常会有个break;
      

  3.   

    Returns < 0 if str1 is less than str2; > 0 if str1 is greater than str2, and 0 if they are equal.理解没有问题,问题再于 <0并不代表就是-1,大于0不代表是1
    switch case的用法你没有搞懂.
      

  4.   

    通过字符的ord来判断,判断阿斯克码的大小
      

  5.   

    你把 $strc 打印出来看看,不就知道了吗