开关/案例字符串比较区分大小写。
<?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;。我怎么能这样做?
答案 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