I think you should make more use of the docs
The following things are considered to be empty:
"" (an empty string)
0 (0 as an integer)
0.0 (0 as a float)
"0" (0 as a string)
array() (an empty array)
$var; (a variable declared, but without a value)
for a Check-Box in a Form which is basically binary, I don't think you need as much rigour...
PHP doesn't know it is a checkbox - it is just a value to PHP, and can be hijacked to embed a malicious script in its value.
All $_POST data are initially supposed to be (according to the docs) strings. I understand that comparing to 1 rather than '1' will likely work. Personally, I won't make this assumption and I specifically cast to a number if appropriate.