I would probably use something like this:
$value = filter_var( $_POST['rating'], FILTER_VALIDATE_INT, array('options' => array('min_range' => 1, 'max_range' => 5)));
filter_var() will return either boolean false if the value is not integer or out of range, or a real value (as an integer).
source share