$_GET è l'array che contiene i parametri passati in modo get
index.php?page=2
ad esempio è un modo per passare il parametro page = 2 alla pagina index.php
quando scrivi
$current_page = (!$_GET['page']) ? 1 : (int)$_GET['page'];
stai dicendo che se non viene passato nessun parametro di nome page si assume come valore di default 1
la traduzione sarebbe
$current_page prende il valore 1 se non c'è niente dentro $_GET['page'] altrimenti prende il valore di page all'interno dell'array $_GET trasformato in intero (inutile dato che in php i cast non sono necessari)
se vuoi essere sicuro che venga passato un numero invece che
index.php?page=bla
dato che uno nell'indirizzo della pagina ci scrive quello che vuole puoi usare la funzione is_numeric($var) che restituisce false se $var non è un numero
in pratica stai solo passando un valore, a che ti serve sta cosa? solo a sapere quale pagina aprire
in modo che la pagina index.php cambi a seconda dei parametri che gli passi
metti caso che salvi i commenti di un post in un database con un attributo che è l'indice del post
farai una cosa del genere:
chiami la pagina index.php?page=x
con x = l'indice del post
con la query
select * from posts where id = x
prendi il post da stampare e con
select * from commenti where commento_post = x
prendi i commenti al post che hai appena stampato
tutto qua, dato che vuoi fare un guestbook non credo sia strettamente necessaria una cosa del genere dato che probabilmente vuoi semplicemente stampare tutti i commenti che vengono lasciati al sito