PHPのintに関する数値のチェックのあれこれ

is_numeric、is_int、(int)でキャストした場合の結果チェック

宣言
$var1 = '100';
$var2 = 100;
$var3 = 'aaa';
実行結果
is_numeric($var1)はtrue
is_numeric($var2)はtrue
is_numeric($var3)はfalse
is_int($var1)はfalse
is_int($var2)はtrue
is_int($var3)はfalse
is_int( (int)$var1 )はtrue
(int)$var1は「100」に変換
is_int( (int)$var2 )はtrue
(int)$var2は「100」に変換
is_int( (int)$var3 )はtrue
(int)$var3は「0」に変換

(int)キャスト時の変換

false は0、trueは1になる。
floatから整数に変換する場合、その数はゼロのほうに丸められる。つまり切り捨て。
文字列は対応する数字に、それ以外は0になる。
宣言
$var1 = true;
$var2 = 1.15;
$var3 = '10';
$var4 = 'aaa';
実行結果
(int)$var1は1 (true)
(int)$var2は1 (1.15)
(int)$var3は10 ('10')
(int)$var4は0 ('aaa')
整数(https://www.php.net/manual/ja/language.types.integer.php#language.types.integer.casting)
戻る

全体目次