【PHP8.x】is_long関数の使い方

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

作成日: 更新日:

基本的な使い方

is_long関数は、指定された変数が整数型(integer)であるかどうかを検査する関数です。この関数は、プログラムの安全性と正確性を保つ上で非常に重要です。例えば、ユーザーからの入力値が期待通りに整数であることを確認したい場合や、内部的な計算結果が整数であることを保証したい場合などに利用します。

引数には、検査したい変数 $var を渡します。この $var はどのような型の変数でも指定することができます。is_long関数は、$var の値がPHPの整数型として扱える場合に true を返します。それ以外の場合、例えば浮動小数点数(float)、文字列(string)、ブール値(boolean)、配列(array)、オブジェクト(object)、またはNULLである場合には false を返します。

この関数は、特にデータの整合性を保つ目的でよく使われます。例えば、ある関数が整数値のみを受け入れるべきである場合に、引数として渡された値が本当に整数であるかをis_longで確認することで、予期せぬエラーやバグを防ぐことができます。PHPでは整数型をintegerと呼びますが、is_long関数はis_int()関数やis_integer()関数と全く同じ動作をします。したがって、これらの関数は互換性があり、状況に応じて使い分けることが可能です。これにより、プログラムの堅牢性を高めることができます。

構文(syntax)

1is_long(mixed $value): bool

引数(parameters)

mixed $value

  • mixed $value: 判定対象の値。整数(integer)かどうかを判定します。

戻り値(return)

bool

指定された変数がlong型(整数型)であればtrueを、そうでなければfalseを返します。

サンプルコード

PHP is_long() 関数で整数型を判定する

1<?php
2
3/**
4 * 指定された値が整数型(long)であるかどうかを is_long() 関数で判定し、結果を表示します。
5 *
6 * is_long() は is_int() のエイリアスであり、PHP 8 時点では非推奨ではありません。
7 *
8 * @param mixed $value テストする値。
9 * @return void
10 */
11function demonstrateIsLong(mixed $value): void
12{
13    // 値の型を取得します
14    $type = gettype($value);
15    // is_long() 関数で値が整数型(long)であるか判定します
16    $isLongResult = is_long($value);
17
18    // 結果を出力します
19    echo "テスト値: " . var_export($value, true) . " (実際の型: {$type})\n";
20    echo "is_long() の結果 (整数型であるか): " . ($isLongResult ? "はい" : "いいえ") . "\n";
21    echo "----------------------------------------\n";
22}
23
24// 様々なデータ型で demonstrateIsLong 関数を呼び出し、動作を確認します。
25demonstrateIsLong(123);           // 整数
26demonstrateIsLong(-456);          // 負の整数
27demonstrateIsLong(0);             // ゼロ
28demonstrateIsLong(PHP_INT_MAX);   // PHPで表現可能な最大整数値
29demonstrateIsLong(123.45);        // 浮動小数点数
30demonstrateIsLong("123");         // 数値に見える文字列
31demonstrateIsLong("hello");       // 文字列
32demonstrateIsLong(true);          // 真偽値 (true)
33demonstrateIsLong(false);         // 真偽値 (false)
34demonstrateIsLong(null);          // NULL値
35demonstrateIsLong([]);            // 配列
36demonstrateIsLong(new stdClass());// オブジェクト

is_long()関数は、プログラミングにおいて、指定された値が整数型(integer)であるかどうかを判定するために使用されます。引数mixed $valueには、判定したい任意のデータ型の値を指定します。この関数は、引数が純粋な整数型であればtrue(真)を、そうでなければfalse(偽)を真偽値として返します。

PHPでは、is_long()is_int()関数のエイリアス(別名)として提供されており、どちらを使っても同じ結果が得られます。PHP 8の時点では、この関数は非推奨(deprecated)ではありませんので、コード内で安全に利用することができます。

サンプルコードでは、demonstrateIsLongという補助関数を通じて、様々なデータ型(整数、浮動小数点数、文字列、真偽値など)の値をis_long()関数でテストしています。例えば、123PHP_INT_MAXのような実際の整数値に対してはtrueが返されますが、123.45のような浮動小数点数、"123"のような数値に見える文字列、truefalseといった真偽値、配列、オブジェクトなど、整数型以外の値に対してはすべてfalseが返される動作が確認できます。

このように、is_long()関数は、プログラム内で値の型に基づいて処理を分岐させたい場合に、特定の変数が整数型であるかを簡単かつ明確に判定するのに役立ちます。

is_long()関数は、与えられた値が厳密に整数型(int)であるかを判定します。この関数はis_int()のエイリアス(別名)であり、PHP 8のバージョンでは非推奨ではありませんので、安心して利用できます。

数値に見える文字列(例: "123")や浮動小数点数(例: 123.45)を引数に渡しても、これらは整数型とは判定されず、結果はfalseとなります。あくまで値のデータ型そのものが整数であるかを確認する際に役立つため、型を厳密にチェックしたい場合に適切です。誤解を防ぐため、is_numeric()関数とは異なる目的で使用してください。

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

1<?php
2
3/**
4 * is_long() 関数の使い方をデモンストレーションします。
5 * PHPは進化し続けていますが、is_long() (is_int() のエイリアス) のような基本的な型チェック関数は
6 * 今も変わらず利用可能で、堅牢なコードを書く上で重要です。
7 */
8function demonstrateIsLongFunction(): void
9{
10    echo "--- is_long() 関数のデモンストレーション ---" . PHP_EOL . PHP_EOL;
11
12    // 整数 (内部的にlong型として扱われる)
13    $integerValue = 123;
14    echo "値: " . var_export($integerValue, true) . " -> is_long(): " . (is_long($integerValue) ? "true" : "false") . PHP_EOL;
15
16    // 大きな整数 (64ビット環境での最大値の一例)
17    $largeLongValue = 9223372036854775807;
18    echo "値: " . var_export($largeLongValue, true) . " -> is_long(): " . (is_long($largeLongValue) ? "true" : "false") . PHP_EOL;
19
20    // 浮動小数点数
21    $floatValue = 12.34;
22    echo "値: " . var_export($floatValue, true) . " -> is_long(): " . (is_long($floatValue) ? "true" : "false") . PHP_EOL;
23
24    // キーワード「long」を含む文字列
25    $longString = "long live PHP!";
26    echo "値: " . var_export($longString, true) . " -> is_long(): " . (is_long($longString) ? "true" : "false") . PHP_EOL;
27
28    // 数値に見えるが文字列型
29    $numericString = "456";
30    echo "値: " . var_export($numericString, true) . " -> is_long(): " . (is_long($numericString) ? "true" : "false") . PHP_EOL;
31
32    // 論理値
33    $booleanValue = true;
34    echo "値: " . var_export($booleanValue, true) . " -> is_long(): " . (is_long($booleanValue) ? "true" : "false") . PHP_EOL;
35
36    // null
37    $nullValue = null;
38    echo "値: " . var_export($nullValue, true) . " -> is_long(): " . (is_long($nullValue) ? "true" : "false") . PHP_EOL;
39
40    echo PHP_EOL . "PHPは多くのデータ型を扱いますが、is_long() は値が真の整数型であるかを厳密にチェックします。" . PHP_EOL;
41}
42
43// 関数を実行します。
44demonstrateIsLongFunction();

PHPのis_long()関数は、与えられた変数が整数型(int型)であるかを厳密に判定するために使用されます。この関数はis_int()関数のエイリアス(別名)として機能し、どちらを使用しても同様の結果を得られます。

引数にはmixed $valueとあり、整数、浮動小数点数、文字列、論理値、nullなど、どのような型の変数でも渡すことが可能です。この関数は渡された値が純粋な整数である場合にのみtrue(真)を返し、それ以外の型である場合はfalse(偽)を返します。

例えば、1239223372036854775807のような整数値はtrueと判定されます。しかし、12.34のような浮動小数点数、"456"のように数値に見える文字列、trueのような論理値、nullなど、整数ではない値はすべてfalseと判定されます。

この関数は、プログラム内で特定の処理が整数値にのみ適用されるべき場合や、ユーザーからの入力が期待通りの型であるかを検証する際に非常に役立ちます。変数の型を明確に確認することで、予期せぬエラーを防ぎ、より堅牢で信頼性の高いコードを記述することができます。

is_long()関数は、PHPにおいて、渡された値が厳密に整数型であるかを判定します。この関数はis_int()関数のエイリアス(別名)であり、一般的にはis_int()を使用することが推奨されます。

サンプルコードで示されているように、浮動小数点数(例: 12.34)や、数値に見える文字列(例: "456")は、厳密な型チェックにより整数型とは判定されず、falseを返します。これは、PHPが値を自動的に整数に変換することなく、実際のデータ型を確認しているためです。引数に異なる型が渡された際にtrueと誤認しないよう、厳密な型チェックが行われる点を理解しておくことが、安全で堅牢なコードを書く上で重要です。値が確実に整数であることを確認したい場合に利用してください。

関連コンテンツ