PHP extract() 関数

❮ PHP 配列リファレンス

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

<?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 - 同じ変数が 現在のシンボルテーブルに存在する場合にのみprefixを変数に付ける
  • EXTR_REFS - 変数を参照として展開する。インポート済みの変数は、引き続き array パラメータの値を参照し続ける
prefix 任意。prefix は、extract_rulesが EXTR_PREFIX_SAME、EXTR_PREFIX_ALL、EXTR_PREFIX_INVALID または EXTR_PREFIX_IF_EXISTS の場合に必要となる。

このパラメータは接頭辞を指定する。接頭辞は、アンダースコアで配列のキーから自動的に分割される。

技術内容
返り値: シンボルテーブルにインポートした変数の数を返します。
PHP バージョン: 4+
変更歴 extract_rules の値 EXTR_REFS は、PHP 4.3 で追加されました。

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

PHP 4.0.5 以降、この関数はインポートした変数の数を返します。

extract_rules の値 EXTR_PREFIX_INVALID は、PHP 4.0.5 で追加されました。

PHP 4.0.5 以降、extract_rules の値 EXTR_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 配列リファレンス