la faccio figa
codice:
$lang = !isset($_GET['lang'])
? 'IT'
: (
$_GET['lang']=='IT' || $_GET['lang']=='EN'
)
? $_GET['lang']
: 'IT';
te l'ho spezzato su + righe per fartelo capire meglio, ma in realtà poteva stare su una sola 
si chiama "operatore ternario" (che bello, credo che sia una delle poche volte che mi ricordo come si chiama
) in pratica ti permette di restituire un valore od un altro in base alla condizione booleana
ovvero
$variabile = CONDIZIONE_BOOLEANA ? RESTITUITO_QUESTO_VALORE_SE_TRUE : RESTITUITO_QUESTO_VALORE_SE_FALSE
la condizione booleana deve valere true o false
in tutti e 3 i parametri puoi mettere qualsiasi cosa vuoi, ma ricordati ovviamente che nel primo deve essere gestito come valore booleano...un po come un if
codice:
if (CONDIZIONE_BOOLEANA) {
$variabile = RESTITUITO_QUESTO_VALORE_SE_TRUE;
} else {
$variabile = RESTITUITO_QUESTO_VALORE_SE_FALSE;
}
xo è + comodo da usare 
quello che ti ho scritto su un doppio operatore ternario, in pratica lanci il primo, se il valore che ritorna il primo è true (isset restituisce false se il valore non è settato, ma quel punto esclamativo all'inizio inverte il valore booleano...!true = false e al contrario...quindi !false diventa true) allora lancia il secondo operatore ternario che verifica se il contenuto è IT o EN altrimenti, se false, in tutti e due i casi, restituisce IT
è possibile anche farlo con un solo operatore ternario cosi...
codice:
$lang = isset($_GET['lang']) && $_GET['lang']=='IT' && $_GET['lang']=='EN'
? $_GET['lang']
: 'IT';

non so se mi sono spiegato, ma c'ho provato