Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【PHP8.x】is_integer()関数の使い方

is_integer関数の使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

is_integer関数は、指定された変数がPHPの整数型(int)であるかどうかを検査し、その結果を返す関数です。この関数は、プログラム内で扱うデータが期待通りの型であるかを厳密に確認したい場合に非常に役立ちます。

具体的には、is_integer関数は検査したい変数一つを引数として受け取ります。そして、その変数の値が整数型(例えば、10-500のような負の数)として格納されていればtrueを返します。一方で、整数型以外のデータ、例えば浮動小数点数(10.03.14など)、文字列("123""hello"など)、論理値(true/false)、配列、オブジェクトなどが渡された場合はfalseを返します。

この関数の主な用途は、データ検証や型チェックです。例えば、ユーザーからの入力値が必ず整数であるべき場所で、意図しない型のデータが混入するのを防ぎ、プログラムの誤動作やセキュリティ上の問題を未然に防ぐことができます。また、特定の計算処理を行う前に、オペランドが確実に整数であることを確認する際にも利用されます。

PHPには、is_int()という関数も存在しますが、これはis_integer()関数の完全に同じ機能を持つ別名(エイリアス)です。どちらを使用しても結果は同じであり、プログラマの好みやコーディングスタイルに合わせて選択できます。is_integer関数は、データ型の整合性を保ち、信頼性の高いプログラムを構築するために不可欠な基本的な関数のひとつと言えます。

構文(syntax)

1<?php
2$value = 123; // 整数型の値
3var_dump(is_integer($value)); // このコードは "bool(true)" と出力します
4?>

引数(parameters)

mixed $value

  • mixed $value: 整数であるかどうかを判定したい値

戻り値(return)

bool

指定された変数が整数型である場合に true を、そうでない場合に false を返します。

サンプルコード

PHP is_integer()で整数型を検査する

1<?php
2
3/**
4 * is_integer() 関数は、指定された変数が整数型であるかどうかを検査します。
5 * PHP 8 で推奨されるコーディングスタイルに従い、様々なデータ型での動作を示します。
6 */
7
8// 実際の整数値の場合
9$intNumber = 42;
10echo "値: " . $intNumber . " (型: " . gettype($intNumber) . ") -> ";
11echo "is_integer(): " . (is_integer($intNumber) ? "はい" : "いいえ") . PHP_EOL;
12
13// 浮動小数点数の場合 (整数ではない)
14$floatNumber = 3.14;
15echo "値: " . $floatNumber . " (型: " . gettype($floatNumber) . ") -> ";
16echo "is_integer(): " . (is_integer($floatNumber) ? "はい" : "いいえ") . PHP_EOL;
17
18// 文字列の場合 (数字のように見えても整数ではない)
19$stringNumber = "123";
20echo "値: '" . $stringNumber . "' (型: " . gettype($stringNumber) . ") -> ";
21echo "is_integer(): " . (is_integer($stringNumber) ? "はい" : "いいえ") . PHP_EOL;
22
23// 真偽値の場合 (整数ではない)
24$booleanValue = true;
25echo "値: " . ($booleanValue ? "true" : "false") . " (型: " . gettype($booleanValue) . ") -> ";
26echo "is_integer(): " . (is_integer($booleanValue) ? "はい" : "いいえ") . PHP_EOL;
27
28// ゼロの場合 (整数である)
29$zeroValue = 0;
30echo "値: " . $zeroValue . " (型: " . gettype($zeroValue) . ") -> ";
31echo "is_integer(): " . (is_integer($zeroValue) ? "はい" : "いいえ") . PHP_EOL;
32
33// Nullの場合 (整数ではない)
34$nullValue = null;
35echo "値: null (型: " . gettype($nullValue) . ") -> ";
36echo "is_integer(): " . (is_integer($nullValue) ? "はい" : "いいえ") . PHP_EOL;
37
38?>

PHPのis_integer()関数は、引数に渡された変数が「整数型(int)」であるかを検査します。引数mixed $valueにはあらゆる型の値を指定でき、変数が整数型であればtrue(真)を、そうでなければfalse(偽)をbool型で返します。

サンプルコードでは、さまざまなデータ型の値に対してis_integer()関数の挙動を示しています。420といった純粋な整数値にはtrueが返されます。しかし、3.14のような浮動小数点数、"123"のような文字列、trueといった真偽値、nullなどの値は、たとえ数値のように見えても、データ型が整数型ではないため、すべてfalseとなります。

これは、is_integer()関数が変数の内容ではなく、その「データ型」が厳密に整数型であるかを判断しているためです。この関数は、プログラム内で変数が間違いなく整数型であることを確認したい場合に役立ちます。

is_integer()関数は、変数がPHPの「整数型(int)」であるかを厳密に検査します。初心者が間違いやすい点として、文字列の数字("123")や浮動小数点数(3.0、3.14)、真偽値(true/false)、nullなどは、見た目が数字でも整数型ではないため、falseを返します。

この関数は、変数のデータ型が本当に整数であるかを確認する際に利用します。もし「数値として扱えるか」を判断したい場合は、is_numeric()関数やfilter_var()関数など、より汎用的な関数を検討してください。is_int()is_integer()のエイリアスであり、同じ働きをします。変数の型を正しく理解し、目的に応じた関数を選ぶことが重要です。

PHPで正の整数かを判定する

1<?php
2
3/**
4 * 指定された値が正の整数であるかをチェックします。
5 *
6 * @param mixed $value チェックする値。
7 * @return bool 値が正の整数であれば true、そうでなければ false を返します。
8 */
9function isPositiveInteger(mixed $value): bool
10{
11    // まず、値が整数型であるかを確認します。
12    if (is_integer($value)) {
13        // 整数型であれば、さらにその値が0より大きい(正である)かを確認します。
14        return $value > 0;
15    }
16    // 整数型でなければ、false を返します。
17    return false;
18}
19
20// サンプルコードの実行例
21
22echo "--- 正の整数のテスト ---" . PHP_EOL;
23$number1 = 10;
24echo "{$number1} は正の整数ですか? " . (isPositiveInteger($number1) ? 'はい' : 'いいえ') . PHP_EOL; // 出力: はい
25
26$number2 = 1;
27echo "{$number2} は正の整数ですか? " . (isPositiveInteger($number2) ? 'はい' : 'いいえ') . PHP_EOL; // 出力: はい
28
29echo PHP_EOL . "--- その他の値のテスト ---" . PHP_EOL;
30$number3 = 0;
31echo "{$number3} は正の整数ですか? " . (isPositiveInteger($number3) ? 'はい' : 'いいえ') . PHP_EOL; // 出力: いいえ
32
33$number4 = -5;
34echo "{$number4} は正の整数ですか? " . (isPositiveInteger($number4) ? 'はい' : 'いいえ') . PHP_EOL; // 出力: いいえ
35
36$floatNumber = 10.5;
37echo "{$floatNumber} は正の整数ですか? " . (isPositiveInteger($floatNumber) ? 'はい' : 'いいえ') . PHP_EOL; // 出力: いいえ
38
39$string = "10";
40echo "文字列 '{$string}' は正の整数ですか? " . (isPositiveInteger($string) ? 'はい' : 'いいえ') . PHP_EOL; // 出力: いいえ
41
42$boolean = true;
43echo (string)$boolean . " は正の整数ですか? " . (isPositiveInteger($boolean) ? 'はい' : 'いいえ') . PHP_EOL; // 出力: いいえ
44
45?>

PHPのis_integer関数は、指定された値が「整数型」であるかどうかを判定するために使われます。この関数はあらゆる型の値(mixed $value)を引数として受け取り、その値が整数型であればtrueを、そうでなければfalseを真偽値(bool)として返します。

サンプルコードでは、このis_integer関数を利用し、「正の整数」であるかをチェックするisPositiveIntegerという独自の関数を定義しています。この関数は、まずis_integer($value)で値が整数型であることを確認します。もし整数型であれば、次にその値が0より大きい(正である)かを判断し、これら二つの条件が両方満たされた場合にのみtrueを返します。それ以外の場合はfalseを返します。

例えば、101は正の整数としてtrueと判定されますが、0-5のような負の整数、10.5のような浮動小数点数、"10"のような文字列、trueのような真偽値は、いずれもfalseと判定されます。このように、is_integer関数は、入力値が特定のデータ型であるかを厳密に確認し、期待する形式のデータだけを処理したい場合に非常に役立つ基本的な関数です。

is_integer関数は、渡された値が厳密に整数型(int)であるかのみを判定します。例えば、文字列の"10"や浮動小数点数10.0は整数型ではないため、falseを返します。

サンプルコードのisPositiveInteger関数は、まずis_integerで値が整数型であることを厳密に確認し、その上で$value > 0という条件で「正の数」であるかを判定しています。これにより、「正の整数」という特定の条件を安全かつ正確に識別できます。

PHPでは柔軟な型変換が行われることがありますが、is_integerのように厳密に型をチェックする関数は、意図しないデータ型によるバグを防ぐために非常に重要です。0や負の整数は「正の整数」ではないため、isPositiveIntegerではfalseと判定される点も理解しておきましょう。

PHP is_integer() で整数型を正確にチェックする

1<?php
2
3/**
4 * PHPの is_integer() 関数の使用例を示します。
5 * 変数が整数型 (int) であるかを正確にチェックする方法を理解できます。
6 */
7function checkIntegerType(): void
8{
9    echo "--- is_integer() 関数による型チェック ---" . PHP_EOL;
10    echo "is_integer() は、引数が「整数型」の場合にのみ true を返します。" . PHP_EOL . PHP_EOL;
11
12    // 1. 整数型 (int) の場合
13    $intValue = 123;
14    echo "値: " . $intValue . " (型: " . gettype($intValue) . ")" . PHP_EOL;
15    echo "is_integer() の結果: " . var_export(is_integer($intValue), true) . PHP_EOL; // 結果: true
16    echo "---------------------------" . PHP_EOL;
17
18    // 2. 浮動小数点数型 (float) の場合 (値が整数でも型が異なるため false)
19    $floatValue = 10.0;
20    echo "値: " . $floatValue . " (型: " . gettype($floatValue) . ")" . PHP_EOL;
21    echo "is_integer() の結果: " . var_export(is_integer($floatValue), true) . PHP_EOL; // 結果: false
22    echo "---------------------------" . PHP_EOL;
23
24    // 3. 別の浮動小数点数型 (float) の場合
25    $anotherFloatValue = 5.75;
26    echo "値: " . $anotherFloatValue . " (型: " . gettype($anotherFloatValue) . ")" . PHP_EOL;
27    echo "is_integer() の結果: " . var_export(is_integer($anotherFloatValue), true) . PHP_EOL; // 結果: false
28    echo "---------------------------" . PHP_EOL;
29
30    // 4. 文字列型 (string) の場合 (数値の文字列でも型が異なるため false)
31    $stringValue = "456";
32    echo "値: '" . $stringValue . "' (型: " . gettype($stringValue) . ")" . PHP_EOL;
33    echo "is_integer() の結果: " . var_export(is_integer($stringValue), true) . PHP_EOL; // 結果: false
34    echo "---------------------------" . PHP_EOL;
35
36    // 5. 論理型 (bool) の場合
37    $boolValue = true;
38    echo "値: " . var_export($boolValue, true) . " (型: " . gettype($boolValue) . ")" . PHP_EOL;
39    echo "is_integer() の結果: " . var_export(is_integer($boolValue), true) . PHP_EOL; // 結果: false
40    echo "---------------------------" . PHP_EOL;
41
42    // 6. NULL の場合
43    $nullValue = null;
44    echo "値: " . var_export($nullValue, true) . " (型: " . gettype($nullValue) . ")" . PHP_EOL;
45    echo "is_integer() の結果: " . var_export(is_integer($nullValue), true) . PHP_EOL; // 結果: false
46    echo "---------------------------" . PHP_EOL;
47
48    echo PHP_EOL . "結論: is_integer() は厳密な型チェックを行います。" . PHP_EOL;
49}
50
51// 上記で定義した関数を実行します。
52checkIntegerType();
53
54?>

PHPのis_integer()関数は、与えられた変数が「整数型(int)」であるかどうかを厳密にチェックするための関数です。引数には任意の型の値を一つ指定し、その値が整数型であればtrueを、そうでなければfalseという論理値を戻り値として返します。

このサンプルコードでは、様々な型の値に対してis_integer()関数を適用した結果を示しています。例えば、変数$intValueのように純粋な整数(123)の場合にはtrueが返されます。しかし、$floatValueのように値が整数に見えても型が浮動小数点数(10.0)の場合や、$stringValueのように数値の文字列("456")の場合には、型が異なるためfalseが返されることがわかります。また、論理値やNULLに対してもfalseを返します。

このようにis_integer()関数は、値の内容が整数に見えるかどうかではなく、変数の「データ型」が本当に整数型であるかを厳密に判断します。システム開発において、変数の型を正確に確認したい場合に非常に役立つ関数です。

is_integer()は、引数がPHPの「整数型(int)」であるかを厳密に判定する関数です。初心者が間違いやすい点として、10.0のような「浮動小数点数」や、"456"のような「数値形式の文字列」は、値が整数に見えてもデータ型がintではないため、この関数はfalseを返します。

安全にコードを利用するためには、単に「数値として扱えるか」を確認したい場合は別の関数(例えばis_numeric())を検討し、変数が本当に「整数型(int)」であること自体を厳しくチェックしたい場合にのみis_integer()を使用するよう注意してください。型の厳密性を理解して使い分けることが、予期せぬ動作を防ぎ、堅牢なシステムを構築する上で非常に重要となります。

PHPのis_integer()で整数型を判定する

1<?php
2
3/**
4 * is_integer() 関数の使用例を示します。
5 * この関数は、指定された変数が厳密に「整数型 (integer)」であるかをチェックします。
6 *
7 * PHPでは、数値形式の文字列(例: "123")は整数型とは異なる「文字列型 (string)」として扱われるため、
8 * is_integer() はこれらの値に対して false を返します。
9 * 浮動小数点数(例: 123.0)も、値が整数に見えても型が異なるため false を返します。
10 */
11
12// 実際の整数型
13$int_value = 123;
14echo "値: " . var_export($int_value, true) . " (型: " . gettype($int_value) . ")\n";
15var_dump(is_integer($int_value)); // 結果: bool(true) - 実際の整数なのでtrue
16
17echo "\n";
18
19// 浮動小数点数型 (値が整数に見えても型は異なる)
20$float_value_int_like = 123.0;
21echo "値: " . var_export($float_value_int_like, true) . " (型: " . gettype($float_value_int_like) . ")\n";
22var_dump(is_integer($float_value_int_like)); // 結果: bool(false) - 浮動小数点数型なのでfalse
23
24echo "\n";
25
26// 浮動小数点数型
27$float_value = 3.14;
28echo "値: " . var_export($float_value, true) . " (型: " . gettype($float_value) . ")\n";
29var_dump(is_integer($float_value)); // 結果: bool(false) - 浮動小数点数型なのでfalse
30
31echo "\n";
32
33// 文字列型 (数値形式であっても文字列は整数ではない)
34$string_numeric = "123";
35echo "値: " . var_export($string_numeric, true) . " (型: " . gettype($string_numeric) . ")\n";
36var_dump(is_integer($string_numeric)); // 結果: bool(false) - 文字列型なのでfalse
37
38echo "\n";
39
40// 文字列型 (負の数値形式)
41$string_negative_numeric = "-456";
42echo "値: " . var_export($string_negative_numeric, true) . " (型: " . gettype($string_negative_numeric) . ")\n";
43var_dump(is_integer($string_negative_numeric)); // 結果: bool(false) - 文字列型なのでfalse
44
45echo "\n";
46
47// 文字列型 (非数値形式)
48$string_text = "hello";
49echo "値: " . var_export($string_text, true) . " (型: " . gettype($string_text) . ")\n";
50var_dump(is_integer($string_text)); // 結果: bool(false) - 文字列型なのでfalse
51
52echo "\n";
53
54// 論理値型
55$bool_true = true;
56echo "値: " . var_export($bool_true, true) . " (型: " . gettype($bool_true) . ")\n";
57var_dump(is_integer($bool_true)); // 結果: bool(false) - 論理値型なのでfalse
58
59echo "\n";
60
61// null型
62$null_value = null;
63echo "値: " . var_export($null_value, true) . " (型: " . gettype($null_value) . ")\n";
64var_dump(is_integer($null_value)); // 結果: bool(false) - null型なのでfalse
65
66?>

is_integer()関数は、PHPにおいて、指定された変数が厳密に「整数型 (integer)」であるかどうかをチェックするための関数です。引数$valueには判定したい任意の型の変数を渡し、その結果を真偽値 (trueまたはfalse) で返します。

この関数は、単に値が整数に見えるかどうかではなく、変数の「型」そのものが整数型であるかを厳密に判定します。そのため、"123"のように数値形式の文字列であっても、その型は「文字列型 (string)」であるためfalseを返します。また、123.0のように小数点以下がゼロである浮動小数点数も、「浮動小数点数型 (float)」であるためfalseと判断されます。

サンプルコードでは、実際に123という整数型の変数に対してのみtrueが返され、その他の文字列型、浮動小数点数型、論理値型、null型の変数に対してはすべてfalseが返されることが確認できます。システム開発において、データの整合性を保つためにも変数の型を正確に把握することは非常に重要であり、is_integer()関数はそのような厳密な型チェックが必要な場面で活用されます。

is_integer()関数は、変数がPHPのデータ型として「厳密に整数型 (integer)」であるかを判定します。システムエンジニアを目指す初心者が特に間違いやすい点として、数値形式の文字列(例: "123")や、値が整数に見える浮動小数点数(例: 123.0)が挙げられます。これらは見た目上は整数でも、PHPでは「文字列型」や「浮動小数点数型」として扱われるため、is_integer()falseを返します。この関数は、変数の「値」ではなく「型」が整数であるかを確認する際にのみ使用し、他の型から整数への変換や数値としての有効性を確認したい場合は、別の適切な方法を検討してください。

関連コンテンツ

関連プログラミング言語