PHP extract()関数

PHP Array Reference完全な PHP Array リファレンスマニュアル

例

キー値 "Cat"、"Dog"、"Horse" を変数 $a、$b、$c に代入します:

<?php $a = "Original"; $my_array = array("a" => "Cat","b" => "Dog", "c" => "Horse"); extract($my_array); echo "\$a = $a; \$b = $b; \$c = $c"; ?>

例を実行 »

定義と用法

extract() 関数は、配列から変数を現在のシンボルテーブルにインポートします。

この関数は、配列のキー名を変数名として、配列のキー値を変数値として使用します。配列の各要素について、現在のシンボルテーブルに対応する変数を作成します。

この関数は、正常に設定された変数の数を返します。


構文

extract(array,extract_rules,prefix)

パラメータ 説明
array 必須。使用する配列を指定します。
extract_rules オプション。extract() 関数は、各キー名が正しい変数名であるかどうかをチェックし、シンボルテーブルに既に存在する変数名と衝突するかどうかもチェックします。不正なキー名や衝突するキー名の処理は、このパラメータに基づいて決定されます。

指定可能な値:

  • EXTR_OVERWRITE - デフォルト。衝突がある場合は、既存の変数を上書きします。
  • EXTR_SKIP - 衝突がある場合は、既存の変数を上書きしません。
  • EXTR_PREFIX_SAME - 衝突がある場合は、変数名の前に prefix を追加します。
  • EXTR_PREFIX_ALL - すべての変数名に prefix を追加します。
  • EXTR_PREFIX_INVALID - 不正な変数名または数字の変数名の前にのみ prefix を追加します。
  • EXTR_IF_EXISTS - 現在のシンボルテーブルに同じ名前の変数が既にある場合にのみ、その値を上書きします。その他は処理しません。
  • EXTR_PREFIX_IF_EXISTS - 現在のシンボルテーブルに同じ名前の変数が既にある場合にのみ、プレフィックスを付加した変数名を作成します。その他は処理しません。
  • EXTR_REFS - 変数を参照として抽出します。インポートされた変数は、引き続き配列パラメータの値を参照します。
prefix オプション。extract_rules パラメータの値が EXTR_PREFIX_SAME、EXTR_PREFIX_ALL、EXTR_PREFIX_INVALID、または EXTR_PREFIX_IF_EXISTS の場合、prefix は必須です。

このパラメータはプレフィックスを指定します。プレフィックスと配列のキー名の間には、自動的にアンダースコアが追加されます。

技術詳細

戻り値: 正常に設定された変数の数を返します。
PHP バージョン: 4+
変更履歴: extract_rulesEXTR_REFS の値は PHP 4.3 で追加されました。

extract_rulesEXTR_IF_EXISTS と EXTR_PREFIX_IF_EXISTS の値は PHP 4.2 で追加されました。

PHP 4.0.5 以降、この関数は正常に設定された変数の数を返します。

extract_rulesEXTR_PREFIX_INVALID の値は PHP 4.0.5 で追加されました。

PHP 4.0.5 以降、extract_rulesEXTR_PREFIX_ALL の値には数値変数も含まれます。


その他の例

例 1

すべてのパラメータを使用する:

<?php
$a = "Original";
$my_array = array("a" => "Cat", "b" => "Dog", "c" => "Horse");

extract($my_array, EXTR_PREFIX_SAME, "dup");

echo "$a = $a; $b = $b; $c = $c; $dup_a = $dup_a";
?>

例を実行 »


PHP Array Reference完全な PHP Array リファレンスマニュアル その他の拡張