php is_integerでinteger型であるかを判定する

phpで、is_integerを使用して、integer型であるかを判定するサンプルコードを記述してます。phpのバージョンは8.0です。
環境
- OS CentOS Linux release 8.0.1905 (Core)
- php 8.0.0
- nginx 1.14.1
is_integer使い方
is_integerを使用すれば、integer型であるかを判定することが可能です。
is_integer(変数);
// integer型であれば true, なければ falseを返します。
以下は、変数がinteger型であるかを判定するサンプルコードとなります。
<?php
var_dump(is_integer(0));
// bool(true)
var_dump(is_integer(1));
// bool(true)
var_dump(is_integer(1.1));
// bool(false)
var_dump(is_integer(true));
// bool(false)
var_dump(is_integer(false));
// bool(false)
var_dump(is_integer("str"));
// bool(false)
var_dump(is_integer("1"));
// bool(false)
var_dump(is_integer("1.1"));
// bool(false)
var_dump(is_integer([1, 2, 3]));
// bool(false)
var_dump(is_integer([1.1, 2.2, 3.3]));
// bool(false)
var_dump(is_integer(new stdClass));
// bool(false)
var_dump(is_integer(null));
// bool(false)
var_dump(is_integer(fopen('hoge.txt', 'r+')));
// bool(false)
以下のコードでも判定可能です。
※パフォーマンスは、基本的にis_integerの方が良さそうです。
<?php
$var = 1;
var_dump(!is_array($var) && !is_object($var) && (int)$var === $var);
// bool(true)
$var = 1.1;
var_dump(!is_array($var) && !is_object($var) && (int)$var === $var);
// bool(false)
【参考】 配列をinteger型であるかを判定したコードを1000万回実行した計測結果
コード
<?php
$var = [];
var_dump(is_integer([]));
// bool(falase)
var_dump(!is_array($var) && !is_object($var) && (int)$var === $var);
// bool(falase)
実行結果
測定結果 : is_integer
process time: 0.53486 ミリ秒
測定結果 : (int)
process time: 0.57071 ミリ秒
-
前の記事
javascript lodashを使って数値を判定する 2021.11.05
-
次の記事
TortoiseGitを使ってファイル名の変更を行う 2021.11.05
コメントを書く