Case sensitivity
Case sensitivity – określenie interpretacji danych charakteryzującej się rozróżnianiem semantyki liter małych i wielkich (ang. case sensitive). Z kolei w przypadku case insensitive nie rozróżnia się wielkości liter.
Przykłady
edytujSystemy operacyjne
edytujSystemy z rodziny Unix rozróżniają wielkość liter (case sensitive), więc system zwróci błąd po próbie odwołania się do pliku Plik.c
, mając tylko plik.c
(pierwsza litera różni się wielkością). W systemach z rodziny Windows, plik test.exe
uruchomimy także wpisując TesT.eXe
.
Programowanie
edytujWartości
edytujPoniższy kod w PHP sprawdza czy ciąg Wikipedia
jest równy ciągowi wikipedia
.
<?php
if ('Wikipedia' == 'wikipedia') echo 'Te same ciągi'; else echo 'Ciągi się różnią';
Wynikiem programu będzie tekst „Ciągi się różnią
”, ponieważ wielkość pierwszej litery się różni.
Nazwy zmiennych
edytujZ kolei ten kod PHP porównuje zmienną do stałej wartości. Jest bardziej skomplikowany, jednak pokazuje częsty błąd programistyczny.
<?php
$zmienna = true;
if ($Zmienna == false) echo '$Zmienna ma wartość false'; else echo '$Zmienna ma wartość true';
Dla początkującego programisty mogłoby się zdawać, że wynikiem programu będzie ciąg "$Zmienna ma wartość true
". Jednak wartość $zmienna
to true
, a $Zmienna
nie jest ustawiona i nie jest tym samym co $Zmienna
[1], co przy luźnym porównywaniu (==
) spowoduje rzutowanie typu przez interpreter do typu boolean, a wartość przybierze wartość domyślną, czyli false
. W rezultacie $zmienna
ma ustawioną wartość true
, $Zmienna
ma w typie boolean domyślną wartość false
, a więc wynikiem będzie „$Zmienna ma wartość false
”.
HTML
edytujRozróżnianie wielkości liter różni się w zależności od wersji i danego elementu. Przykładowo cały XHTML jest case sensitive (np. tag <body>
jest prawidłowy, <BODY>
już nie). Z kolei HTML5 w większości jest case insensitive, jednak z elementami case sensitive. Dla przykładu w <!DOCTYPE html>
fragment DOCTYPE
jest case insensitive (można zapisać np. jako "dOcTyPe
"), a ciąg "html" jest case sensitive (więc zapis np. "hTmL
" jest nieprawidłowy)[2].