ホームページ >バックエンド開発 >PHPチュートリアル >php extract() 関数は、データ内の変数を php 変数に変換します_PHP チュートリアル

php extract() 関数は、データ内の変数を php 変数に変換します_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-20 11:03:12909ブラウズ

PHP extract() 関数は、変数を配列から現​​在のシンボル テーブルにインポートします。配列内の各要素について、キー名が変数名として使用され、キー値が変数値として使用されます。 2 番目のパラメーターの種類は、変数がすでに存在し、配列内に同じ名前の要素が存在する場合に、extract() 関数がそのような競合をどのように処理するかを指定するために使用されます。 ​

次のように、PHP 配列から変数をエクスポートし、キー名を変数名として、値を変数値として使用して、グローバル変数として登録します

コードは次のとおりです コードをコピー
$vars = array('var1'=>'1','var2'=>'2','var3'=>'3','var4'=>'4','var5'= >'5');

$var1、$var2 などの変数名としてキー名を使用してアクセスを実現します

最初のオプション: PHP の組み込みの extract() 関数を使用します。方法は次のとおりです

コードは次のとおりです コードをコピー
抽出($vars);

2番目のオプション: foreachループ配列を使用してグローバル変数として登録する方法は次のとおりです

コードは次のとおりです コードをコピー
foreach($vars as $k=>$v){
$GLOBALS[$k] = $v;
}

extract() 関数にはパフォーマンスとセキュリティの問題があるため、2 番目の解決策をお勧めします。

extract() 関数の説明

(PHP 3 >= 3.0.7、PHP 4、PHP 5)
extract -- 変数を配列から現​​在のシンボルテーブルにインポートします

コードは次のとおりです コードをコピー

int extract (array var_array [, int extract_type [, string prefix]] )

この関数は、配列から現​​在のシンボル テーブルに変数をインポートするために使用されます。連想配列 var_array を引数として受け入れ、キー名を変数名として、値を変数値として使用します。キーと値のペアごとに、extract_type パラメーターと prefix パラメーターの影響を受ける変数が現在のシンボル テーブルに作成されます。

参考表

パラメータ 説明
配列 必須。使用する入力を指定します。
抽出ルール

オプション。 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 の場合にのみ必要であることに注意してください。プレフィックスを付加した結果が正当な変数名ではない場合、シンボルテーブルにはインポートされません。

接頭辞と配列キー名の間にアンダースコアが自動的に追加されます。

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

コードは次のとおりです コードをコピー

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。