php7から変数の型宣言が厳格なコーディングが可能になっていますのでぜひ使いましょう。
echo gettype( $val );
var_dump( $val );
declare(strict_types=1);
<?php
declare(strict_types=1);
function my_func(int $v){
echo $v."\n";
}
my_func('999');
PHP Fatal error: Uncaught TypeError: Argument 1 passed to my_func() must be of the type integer, string given, called in /test.php on line 6 and defined in /test.php:3
Stack trace:
#0 /test.php(3): my_func('999')
#1 {main}
thrown in /test.php on line 7
こちらもあわせて使用すると非常に有効です。
PHPで列挙型(enum)を作る
http://bit.ly/2oTfrz7