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

  • 作成日 2021.11.05
  • php
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 ミリ秒