PHP switch / case语句,不区分大小写的字符串比较

时间:2015-03-31 23:43:28

标签: php

开关/案例字符串比较区分大小写。

<?php
$smart = "crikey";

switch ($smart) {
     case "Crikey":
         echo "Crikey";
         break;
     case "Hund":
         echo "Hund";
         break;
     case "Kat":
         echo "Kat";
         break;
     default:
         echo "Alt Andet";
}
?>

上面的代码打印&#34; Alt Andet&#34;,但我想比较不区分大小写的字符串和打印&#34; Crikey&#34;。我怎么能这样做?

3 个答案:

答案 0 :(得分:21)

将输入转换为大写或小写,问题已解决。

<?php
$smart = "cRikEy";

switch (strtolower($smart)) {
     case "crikey": // Note the lowercase chars
         echo "Crikey";
         break;
     case "hund":
         echo "Hund";
         break;
     case "kat":
         echo "Kat";
         break;
     default:
         echo "Alt Andet";
}
?>

答案 1 :(得分:6)

对案例陈述使用stristr()函数。 stristr() 不区分大小写 strstr()并且返回所有haystack,从第一次出现针头开始并包括针头到最后。

<?php

$smart = "crikey";

switch ($smart) {
     case stristr($smart, "Crikey"):
         echo "Crikey";
         break;
     case stristr($smart, "Hund"):
         echo "Hund";
         break;
     case stristr($smart, "Kat"):
         echo "Kat";
         break;
     default:
         echo "Alt Andet";
}

?>

答案 2 :(得分:2)

如果您使用小写输入,则可以将它们转换为字符串中每个单词的大写第一个字符

  

ucwords - 大写字符串中每个单词的第一个字符

<?php
$smart = "crikey";

switch (ucwords($smart)) {
     case "Crikey":
         echo "Crikey";
         break;
     case "Hund":
         echo "Hund";
         break;
     case "Kat":
         echo "Kat";
         break;
     default:
         echo "Alt Andet";
}
?>
来自doc的

有用链接:

first character of each word
Make a string's first character uppercase
Make a string lowercase
Make a string uppercase