PHPのextract()関数とは?使い方とパラメータを徹底解説
extract()関数とは
PHPのextract()関数は、配列のキーと値を現在のシンボルテーブルに変数としてインポートする関数です。連想配列の各要素が「キー名=変数名、値=変数の値」として展開され、戻り値としては正常に抽出された変数の個数が返されます。
構文
extract(arr, rules, prefix)
パラメータ
arr − 変数として展開したい対象の配列を指定します。
rules − 無効な変数名や既存変数との衝突(コンフリクト)が発生した場合の扱い方を指定します。指定できる値は以下の通りです。
EXTR_OVERWRITE − デフォルト値。同名の変数が既に存在する場合、既存の変数を上書きします。
EXTR_SKIP − 同名の変数が既に存在する場合、既存の変数を上書きしません。
EXTR_PREFIX_SAME − 同名の変数が既に存在する場合、接頭辞(プレフィックス)を付けた変数名で新たに作成します。
EXTR_PREFIX_ALL − 展開されるすべての変数名に接頭辞を付けます。
EXTR_PREFIX_INVALID − 無効な変数名または数値のキーのみに接頭辞を付けます。
EXTR_IF_EXISTS − 現在のシンボルテーブルに既に存在する変数のみを上書きします。存在しない場合は何もしません。
EXTR_PREFIX_IF_EXISTS − 現在のシンボルテーブルに同名の変数が存在する場合にのみ、接頭辞を付けた変数を作成します。
EXTR_REFS − 変数を参照として抽出します。インポートされた変数は、元の配列パラメータの値への参照を保持し続けます。
prefix − EXTR_PREFIX_SAME、EXTR_PREFIX_ALL、EXTR_PREFIX_INVALID、EXTR_PREFIX_IF_EXISTS のいずれかを指定した場合にのみ必要となる接頭辞です。
戻り値
extract()関数は、正常に抽出(インポート)された変数の個数を返します。
使用例
以下は、連想配列をextract()関数で変数として展開する例です。
<?php
$prod = array("AM"=>"AMIT", "TM"=>"Tom");
extract($prod);
echo "\$AM is $AM\n\$TM is $TM";
?>
出力結果
$AM is AMIT
$TM is Tom
この例では、連想配列$prodのキー「AM」「TM」がそれぞれ変数$AM、$TMとして展開され、対応する値が自動的に代入されていることがわかります。
使用時の注意点
extract()関数は、既存の変数を意図せず上書きしてしまう危険性があります。特にユーザー入力など外部から受け取ったデータに対してデフォルト設定(EXTR_OVERWRITE)のまま使用すると、予期しない動作やセキュリティ上の問題につながる恐れがあります。安全に利用するためには、EXTR_SKIP や EXTR_PREFIX_ALL といった rules パラメータを明示的に指定することを推奨します。
-
PHPのfilter_input()関数とは?使い方とパラメータを解説
PHPのfilter_input()関数は、GETやPOSTなど外部から送信された変数を名前で取得し、必要に応じてフィルタリング(検証・サニタイズ)を行うことができる関数です。ユーザー入力を安全に扱うための重要な関数の一つであり、セキュリティ対策の観点からも広く利用されています。構文filter_input(type, var, filtername, options)パラメータtype − チェック対象となる入力の種類を指定します。指定できるのは以下の5種類です。INPUT_GET、INPUT_POST、INPUT_COOKIE、INPUT_SERVER、INPUT_ENVvar − 取得し
-
PHPのextract()関数とは?使い方とパラメータを徹底解説
extract()関数とはPHPのextract()関数は、配列のキーと値を現在のシンボルテーブルに変数としてインポートする関数です。連想配列の各要素が「キー名=変数名、値=変数の値」として展開され、戻り値としては正常に抽出された変数の個数が返されます。構文extract(arr, rules, prefix)パラメータarr − 変数として展開したい対象の配列を指定します。rules − 無効な変数名や既存変数との衝突(コンフリクト)が発生した場合の扱い方を指定します。指定できる値は以下の通りです。EXTR_OVERWRITE − デフォルト値。同名の変数が既に存在する場合、既存の変数を上書