No se verifica al obtener el argumento sino al procesar la función, por algo es función, todo lo que esté dentro debe servir para verificar cosas como esas.
public function Suma($num){
if((int)$num == 0) return 0; /* Invalid integer */
}Aunque de todas formas estarás haciendo que tu función sea cada ves menos flexible, vamos que php es la onda, no existe nada mas flexible, es mas flexible que html en firefox.
Basta con dar un cast ante cada proceso de la función, po ejemplo:
function suma($num1, $num2){
return ((int)$num1 + (int)$num2);
}Da lo mismo si le das un null, false, string, objeto porque si $num no es numerico entonces el cast (int) te lo transforma en un cero, por lo tanto:
suma('hola', 9); // resultado: 0+9=9Para eso php creó los cast rápidos, para no tener que estar haciendo clases numericas. De todas formas ya existen muchas clases para esto:
http://php.net/manual/es/numberformatter.parse.phphttp://www.php.net/manual/es/language.types.type-juggling.phphttp://www.php.net/manual/es/function.ctype-digit.phphttp://www.php.net/manual/es/ref.var.php