filter_has_var

関数の概要

PHPの filter_has_var 関数は、指定した入力タイプ(GETやPOST、COOKIEなど)の中に特定の変数が存在するかどうかを確認するための関数です。ユーザーから送信されたデータが存在するか簡単にチェックできるため、入力バリデーションやフォーム処理時に非常に便利です。

パラメータの説明

  • int $type : チェックしたい変数の入力タイプを指定します。主に以下の定数を使います。
    • INPUT_GET – GET変数をチェック
    • INPUT_POST – POST変数をチェック
    • INPUT_COOKIE – COOKIE変数をチェック
    • INPUT_ENV – 環境変数をチェック
    • INPUT_SERVER – サーバー変数をチェック
  • string $variable_name : 存在チェックする変数名を文字列で指定します。

戻り値

変数が指定した入力タイプの中に存在する場合は true を返し、存在しない場合は false を返します。

使用例

基本的な使い方(GET変数の確認)

<?php
if (filter_has_var(INPUT_GET, 'id')) {
    echo "GETパラメータの 'id' が存在します。";
} else {
    echo "GETパラメータの 'id' は存在しません。";
}
?>

この例では、URLのクエリパラメータに id が含まれているかどうかを判定しています。

POST変数の存在確認

<?php
if (filter_has_var(INPUT_POST, 'username')) {
    $username = $_POST['username'];
    echo "POSTパラメータの 'username': " . htmlspecialchars($username);
} else {
    echo "POSTパラメータの 'username' が送信されていません。";
}
?>

フォーム送信時に、POSTデータの中に username が存在するかチェックする例です。存在すれば値を取得して表示します。

COOKIE変数の存在チェック

<?php
if (filter_has_var(INPUT_COOKIE, 'user_session')) {
    echo "COOKIE変数 'user_session' がセットされています。";
} else {
    echo "COOKIE変数 'user_session' はセットされていません。";
}
?>

ユーザーのクッキーに特定の値が保存されているかどうかを確認したい場合に使えます。

関連する関数

  • filter_input() – 指定した入力タイプから変数の値を取得しつつ、フィルターをかける関数
  • filter_var() – 値に対して直接フィルターを適用する関数
  • isset() – 通常の変数がセットされているかどうかを調べるPHPの基本関数

まとめ

filter_has_var は、ユーザーから送信されたデータ(GET、POST、COOKIEなど)に特定の変数が存在するか手軽にチェックしたい時に便利な関数です。バリデーションや条件分岐の前段階として使うことで、処理の安定性やセキュリティを向上させることができます。初心者でも簡単に扱えるため、フォーム処理やWebアプリケーションの入力検証に積極的に活用しましょう。