Your second definition will suppress any error encountered when $_GET['page'] isn't set by not trying to assign it to anything.
The (int) part in the second definition will cast $_GET['page'] to an integer value. This will inhibit any attacks you might get, although you should still be careful.
Finally, $page = 0 simply sets a default value for $page. If there is no value in $_GET, $page will remain with a value of 0. This also ensures that $page is always set, if you're using it in code below your snippet.
I don't know what you mean by merge them into one; the second snippet is an extension (and improvement) of the first.