Yo te recomiendo esta manera.
----
Y no solo para tu checkbox si no para tus variables en general.
ya que isset sirve para comprobar si la VARIABLE EXISTE, así que con isset;
$_POST['checkbox'] = ''; // Esto siempre va a ser verdadero aunque la variable este vacía.
$_POST['checkbox'] = 'hola mundo'; // Esto también es verdadero
En cambio con empty(); verifica que el valor de la variable este vacía.
$_POST['checkbox'] = ''; // Este a hacer verdadero.
$_POST['checkbox'] = 'hola mundo'; // este va a ser falso.
Por lo tanto;
!empty($_POST['checkbox'])
se traduce como: 'si la variable NO ESTA vacía'.