2015-03-31 14 views
5

W rozróżnianiu ciągów komend i liter jest rozróżniana wielkość liter.Przełącznik PHP/instrukcja case z rozróżnianiem wielkości liter bez rozróżniania wielkości liter

<?php 
$smart = "crikey"; 

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

Przede wydruków kodem "Alt Andet", ale chciałbym porównać ciągi rozróżniana wielkość liter i print "Crikey". Jak mogę to zrobić?

+2

Jakie jest twoje pytanie? –

+4

Dlaczego według Ciebie w instrukcji switch nie ma znaczenia wielkość liter? 'crikey' i' Crikey' to nie to samo. Wiedząc o tym, obejmij to i "strtoupper" lub "strtolower" wartości. Alternatywnie wielka litera to pierwsza litera twojej zmiennej podczas porównań. Poza tym, dlaczego miałbyś tak to robić? –

+1

Po prostu ci powiedział - Wymuś wszystko, by zamieniać skrzynkę w strtolower ($ smart), spraw, aby twój przypadek był "crickey": i tak dalej, i tak dalej. – BigScar

Odpowiedz

16

Konwersja wkład albo małe lub duże, problem rozwiązany.

<?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

jeśli stosowanie niższych nakładów przypadków potem można przekonwertować je do skapitalizowanych pierwszego znaku każdego słowa w ciąg

ucwords - wielkimi literami pierwszy znak każdego wyrazu w ciągu znaków

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

przydatnych linków z doc:

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

7

Użyj funkcji stristr() w przypadku instrukcji case. stristr() jest niewrażliwy na wielkość literstrstr() i zwraca cały stóg siana rozpoczynający się od pierwszego wystąpienia igły i włącznie z końcem.

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

?> 
Powiązane problemy