Siempre puedes declarar el tipo con "type casting":
usando settype() por ejemplo ...
Lee los comentarios sobre dicha función y sobre el tema en sí de definición de tipos de variables:
http://www.php.net/manual/es/function.settype.php
Personalmente creo que con una validación del tipo que tu realmente deseas controlado con funciones tipo is_xxxx() o afines, tendrías controlado tu mensaje de error a mostrar en tu aplicación o controlar el flujo del mismo.
Lo que sí que es realmente importante en PHP es que las variables externas a tus scripts las recogas por el método esperado usando los arrays superglobales: $_POST, $_GET .. etc para discriminar el método por el cual entran . .por qué en PHP, dependiendo del estado de la directiva: register_globals de tu php.ini podrías asumir toda variable como global (las externas) con el "peligro" que ello puede tener sobre todo cuando se usan sesiones ($_SESSION) o cookies por ejemplo .. donde podrías "suplantar" por "GET" (por el URL por ejemplo) un valor de una variable de Sesión.
Un saludo,