2015-03-31 63 views
5

開關/大小寫字符串比較區分大小寫。不區分大小寫的字符串比較的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"; 
} 
?> 

上面的代碼打印「Alt Andet」,但我想比較字符串不區分大小寫並打印「Crikey」。我怎樣才能做到這一點?

+2

你的問題是什麼? – 2015-03-31 23:44:28

+4

你爲什麼認爲switch語句不區分大小寫? 'crikey'和'Crikey'不一樣。知道這一點,解決它和'strtoupper'或'strtolower'的價值。或者,在進行比較時,大寫變量的第一個字母。另外,爲什麼你要這樣呢? – 2015-03-31 23:46:27

+1

他只是告訴你 - 用strtolower($ smart)強制所有的小寫字母,讓你的情況爲「crickey」:等等等等。 – BigScar 2015-03-31 23:51:32

回答

16

轉換的輸入大寫或小寫,問題解決了。

<?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"; 
} 
?> 
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"; 
} 
?> 
的第一個字符從文檔

有用的鏈接:

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

7

對case語句使用stristr()函數。 stristr()不區分大小寫strstr()返回從第一次出現針頭開始幷包括第一次出現針頭的所有乾草堆到最後。

<?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"; 
} 

?> 
相關問題