Caution

お使いのブラウザはJavaScriptが実行できない状態になっております。
当サイトはWebプログラミングの情報サイトの為、
JavaScriptが実行できない環境では正しいコンテンツが提供出来ません。
JavaScriptが実行可能な状態でご閲覧頂くようお願い申し上げます。

PHP辞典

  1. トップページ
  2. PHP辞典
  3. is_[] / is_string() / is_numeric() / gettype()

is_[] / is_string() / is_numeric() / gettype()対応: PHP 4(2000)

変数の型を判定する関数です。フォーム入力のバリデーションや、関数の引数チェックなど安全なコードを書くために使用されます。

構文
// 変数が配列かどうかを判定します。
is_array($value);

// 変数が文字列かどうかを判定します。
is_string($value);

// 変数が数値として有効かどうかを判定します。
is_numeric($value);

// 変数の型名を文字列で取得します。
gettype($value);
関数一覧
関数概要
is_array($value)変数が配列であれば『true』を返します。
is_string($value)変数が文字列であれば『true』を返します。
is_int($value)変数が整数であれば『true』を返します。『is_integer()』『is_long()』は別名です。
is_float($value)変数が浮動小数点数であれば『true』を返します。『is_double()』は別名です。
is_bool($value)変数が真偽値であれば『true』を返します。
is_numeric($value)変数が数値または数値文字列であれば『true』を返します。整数・浮動小数点数・数値文字列のいずれにも対応しています。
is_object($value)変数がオブジェクトであれば『true』を返します。
gettype($value)変数の型を文字列で返します。返される値は『integer』『double』『string』『array』『object』『boolean』『NULL』などです。
サンプルコード
<?php
// is_array() で配列かどうかを判定します。
$fruits = ['りんご', 'みかん', 'ぶどう'];
var_dump(is_array($fruits)); // 『bool(true)』と出力されます。
var_dump(is_array("文字列")); // 『bool(false)』と出力されます。

// is_string() で文字列かどうかを判定します。
var_dump(is_string("Hello")); // 『bool(true)』と出力されます。
var_dump(is_string(123)); // 整数なので『bool(false)』と出力されます。

// is_int() は整数型のみを判定します。
var_dump(is_int(42)); // 『bool(true)』と出力されます。
var_dump(is_int("42")); // 文字列なので『bool(false)』と出力されます。

// is_numeric() は数値文字列も true と判定します。
var_dump(is_numeric(42)); // 『bool(true)』と出力されます。
var_dump(is_numeric("42")); // 数値文字列なので『bool(true)』と出力されます。
var_dump(is_numeric("3.14")); // 小数の文字列も『bool(true)』と出力されます。
var_dump(is_numeric("abc")); // 数値ではないため『bool(false)』と出力されます。

// gettype() で型名を取得します。
echo gettype(100); // 『integer』と出力されます。
echo gettype(3.14); // 『double』と出力されます。
echo gettype("文字列"); // 『string』と出力されます。
echo gettype(true); // 『boolean』と出力されます。
echo gettype(null); // 『NULL』と出力されます。
echo gettype([]); // 『array』と出力されます。

// フォーム入力値が数値として有効かを検証します。
$_POST['age'] = "25";
if (is_numeric($_POST['age'])) {
	$age = (int)$_POST['age'];
	echo "年齢: " . $age; // 『年齢: 25』と出力されます。
}
概要

型判定関数は、変数が期待する型であるかを安全に確認するために使用します。フォームから受け取った値は常に文字列型のため、『is_int()』ではなく『is_numeric()』で数値の妥当性を検証してください。『is_int()』は型そのものを判定するため、文字列の『"42"』に対して『false』を返します。

『gettype()』はデバッグや動的な型チェックに便利ですが、条件分岐で型を判定する場合は『is_array()』などの専用関数を使うほうが可読性に優れています。

型の変換を行いたい場合は『キャスト演算子』を使用してください。変数の存在確認や空判定には『isset() / empty()』を使用してください。

記事の間違いや著作権の侵害等ございましたらお手数ですがまでご連絡頂ければ幸いです。