ホームページ >バックエンド開発 >PHPチュートリアル >PHPのextract()関数
定義と使用法
PHPのextract()関数は、配列から現在のシンボルテーブルに変数をインポートします。
配列内の各要素について、キー名が変数名に使用され、キー値が変数値に使用されます。
2 番目のパラメーターの型は、変数が既に存在し、配列内に同じ名前の要素が存在する場合に、extract() 関数がそのような競合を処理する方法を指定するために使用されます。
この関数は、設定に成功した変数の数を返します。
構文
extract(array,extract_rules,prefix)
パラメータの説明
array 必須。使用する入力を指定します
extract_rules
オプション。 extract() 関数は、各キー名が正当な変数名であるかどうかをチェックし、シンボル テーブル内の変数名と競合するかどうかもチェックします。
不正な数値、競合するキー名の処理は、このパラメータに基づいて決定されます。次の値のいずれかを指定できます:
可能な値:
EXTR_OVERWRITE - デフォルト。競合がある場合、既存の変数は上書きされます。
EXTR_SKIP - 競合がある場合、既存の変数を上書きしないでください。 (配列内の同じ名前の要素は無視します)
EXTR_PREFIX_SAME - 競合がある場合は、変数名の前にプレフィックスを付けます。 PHP 4.0.5 以降、これには数値インデックスの処理も含まれます。
EXTR_PREFIX_ALL - すべての変数名に接頭辞を付けます (3 番目のパラメーター)。
EXTR_PREFIX_INVALID - 不正な変数名または数値変数名のみにプレフィックスを付けます。このタグはPHP 4.0.5で新たに追加されました。
EXTR_IF_EXISTS - 現在のシンボル テーブルに既に存在する場合、同じ名前の変数の値のみを上書きします。その他は加工しておりません。これは、一連の正当な変数が定義されており、$_REQUEST などの配列から値を抽出してこれらの変数を上書きする場合に使用できます。このタグはPHP 4.2.0で新たに追加されました。
EXTR_PREFIX_IF_EXISTS - 現在のシンボルテーブルに同じ名前の変数がある場合のみ、プレフィックス付きの変数名が作成され、その他は処理されません。このタグはPHP 4.2.0で新たに追加されました。
EXTR_REFS - 変数を参照として抽出します。これは、インポートされた変数が依然として var_array パラメーターの値を参照していることを強く示しています。このフラグは単独で使用することも、extract_type で OR を使用して他のフラグと組み合わせて使用することもできます。このタグはPHP 4.3.0で新たに追加されました。
プレフィックス
オプション。プレフィックスは、extract_type の値が EXTR_PREFIX_SAME、EXTR_PREFIX_ALL、EXTR_PREFIX_INVALID、または EXTR_PREFIX_IF_EXISTS の場合にのみ必要であることに注意してください。プレフィックスを付加した結果が正当な変数名ではない場合、シンボルテーブルにはインポートされません。
プレフィックスと配列キー名の間にアンダースコアが自動的に追加されます。
例 1
$a = 'オリジナル';
$my_array = array("a" => "猫","b" => "犬", "c" => "馬");
extract($my_array);
echo "$a = $a; $b = $b; $c = $c";
?>
出力:
$a = 猫; $b = 犬; $c = 馬
すべてのパラメータを使用します:
$a = 'Original';
$my_array = array("a" = > "猫","b" => "犬", "c" => "馬");
extract($my_array, EXTR_PREFIX_SAME, 'dup');
echo "$a = $a ; $b = $b; $c = $c; $dup_a = $dup_a;";
?>
出力:
$a = オリジナル; $c = 馬; $dup_a =猫;