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

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

作成日: 更新日:

基本的な使い方

is_scalar関数は、指定された変数がスカラー型であるかどうかを検査する関数です。PHPにおけるスカラー型とは、整数 (integer)、浮動小数点数 (float)、文字列 (string)、および真偽値 (boolean) のいずれかの型のことを指します。これらは、単一の値を保持する基本的なデータ型であり、プログラムで扱う最も基礎的な情報単位です。

この関数は、引数として渡された変数がこれら4つのいずれかのスカラー型に該当する場合に true を返します。逆に、スカラー型ではない場合は false を返します。例えば、配列 (array) やオブジェクト (object)、リソース (resource)、null、およびその他の複合型や特殊な値はスカラー型とはみなされません。

is_scalar関数は、変数の型を厳密にチェックしたい場合や、特定のデータ型のみを処理するロジックを実装する際に非常に役立ちます。例えば、ユーザーからの入力が単一の値であるかを確認したい場合や、関数が受け取る引数が期待する基本的なデータ型であるかを検証する際などに利用できます。これにより、予期せぬ型のデータが処理されることによるエラーを防ぎ、プログラムの信頼性や堅牢性を高めることができます。システム開発において、データの整合性を保つための基本的な型チェックツールとして活用されます。

構文(syntax)

1<?php
2$value = "Hello PHP"; // スカラ値(文字列)の例
3// $value = 123;         // スカラ値(整数)の例
4// $value = 3.14;        // スカラ値(浮動小数点数)の例
5// $value = true;        // スカラ値(真偽値)の例
6// $value = [1, 2, 3];   // 非スカラ値(配列)の例
7// $value = null;        // 非スカラ値(NULL)の例
8
9$isScalar = is_scalar($value);
10
11// $value が int, float, string, bool のいずれかである場合に true を返す。
12// それ以外(配列、オブジェクト、リソース、NULLなど)の場合は false を返す。
13?>

引数(parameters)

mixed $value

  • mixed $value: スカラー型(boolean, integer, float, string)のいずれかであることを判定したい値

戻り値(return)

bool

指定された変数がスカラー型(整数、浮動小数点数、文字列、ブール値)のいずれかである場合に true を、それ以外の場合に false を返します。

サンプルコード

PHP is_scalarでNULLとスカラー値かを判定する

1<?php
2
3/**
4 * is_scalar 関数の使用例
5 */
6
7// スカラー値のチェック
8$integerValue = 123;
9$floatValue = 3.14;
10$stringValue = "Hello, world!";
11$booleanValue = true;
12$nullValue = null;
13$arrayValue = [1, 2, 3];
14$objectValue = new stdClass();
15
16echo "Integer: " . (is_scalar($integerValue) ? "Scalar" : "Not scalar") . PHP_EOL;
17echo "Float: " . (is_scalar($floatValue) ? "Scalar" : "Not scalar") . PHP_EOL;
18echo "String: " . (is_scalar($stringValue) ? "Scalar" : "Not scalar") . PHP_EOL;
19echo "Boolean: " . (is_scalar($booleanValue) ? "Scalar" : "Not scalar") . PHP_EOL;
20echo "NULL: " . (is_scalar($nullValue) ? "Scalar" : "Not scalar") . PHP_EOL;
21echo "Array: " . (is_scalar($arrayValue) ? "Scalar" : "Not scalar") . PHP_EOL;
22echo "Object: " . (is_scalar($objectValue) ? "Scalar" : "Not scalar") . PHP_EOL;

is_scalar()関数は、PHP 8において変数がスカラー値かどうかを判定するために使用します。引数には任意の型の変数 $value を指定します。この関数は、変数が整数 (integer)、浮動小数点数 (float)、文字列 (string)、またはブール値 (boolean) のいずれかである場合に true を返します。一方、配列 (array)、オブジェクト (object)、リソース (resource) などの複合的な型の場合や、NULL の場合は false を返します。

サンプルコードでは、様々な型の変数に対して is_scalar() 関数を実行し、その結果を echo 文で出力しています。例えば、$integerValue$floatValue$stringValue$booleanValue はそれぞれ整数、浮動小数点数、文字列、ブール値を格納しているため、is_scalar() 関数はこれらの変数に対して true を返します。一方、$arrayValue は配列、$objectValue はオブジェクト、 $nullValue は NULL 値を格納しているため、is_scalar() 関数は false を返します。

この関数を使用することで、変数の型をチェックし、スカラー値のみを期待する処理を行う前に、適切な型であるかどうかを検証することができます。初心者の方がプログラミングを行う上で、予期せぬエラーを防ぐための重要なツールとなります。特に、ユーザーからの入力を処理する際など、変数の型を事前に確認することで、セキュリティ上のリスクを低減することにも繋がります。

is_scalar()関数は、変数が整数 (integer)、浮動小数点数 (float)、文字列 (string)、またはブール値 (bool) の場合に true を返します。null はスカラー値ではないため、is_scalar(null)false を返すことに注意が必要です。配列やオブジェクトもスカラー値ではないため、同様に false が返されます。データの型をチェックする際に、意図しない結果にならないよう、null の扱いには特に注意してください。この関数は、ユーザーからの入力値の型を検証する際などに役立ちます。

関連コンテンツ