Quello che hai scritto tu si può riassumere così:
Sintatticamente la stringa di prima era "quasi" giusta, nel senso che, all'interno di una condizione, una variabile viene interpretata come "true" se è valorizzata e se ha valori diversi da false, 0 o null. Quindi in fin dei conti quella stringa funzionava.codice:$pagina_corrente = !isset($_GET['page']) ? 1 : (int)$_GET['page'];
In realtà la scorrettezza era dovuta al fatto che l'accesso senza controlli ad una variabile non valorizzata va a provocare un notice, che in questo caso è legato alla mancanza di indice "page" nell'array $_GET. Per evitare questi problemi, meglio usare sempre controlli con isset o empty, a seconda delle necessità (come avevi giustamente fatto, anche se con sintassi diversa)
![]()