SYNCER

SYNCER

extract() - 配列から変数を作成する

公開日:

extractは、指定した配列から変数を作成する関数です。連想配列のキーが変数名、値が値としてシンボルテーブルにインポートされます。

構文

int extract ( array &$array [, int $flags = EXTR_OVERWRITE [, string $prefix = NULL ]] )

パラメータ

&$array

対象の配列。

$flags

初期値: EXTR_OVERWRITE

既に同名の変数があったり、数値キーを変数にしようとした時の挙動を調整できます。デフォルトでは、既に同名の変数があった場合は上書きします。

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
変数を参照として展開する。

$prefix

初期値: NULL

第2引数の指定で、同名の変数があった時にprefixを付けた別名の変数にする時の、prefix名。

返り値

int

処理の結果、新しく登録された変数の数を数値で返す。

サンプルコード

配列から変数を作成する

配列から変数を作成できます。ある連想配列に実行した例です。"a""b"、それぞれのキーが名前となった変数が新しく作成されました。2つの変数が作成されたため、返り値は2となります。

php

<?php
	// 配列
	$queue = [
		"a" => "AAA" ,
		"b" => "BBB" ,
	] ;

	// 実行
	$result = extract( $queue ) ;

	// 返り値
	var_dump( $result ) ;

	// 変数が作成される
	var_dump( $a ) ;
	var_dump( $b ) ;

結果 (出力内容) - PHP7.0.21

int(2)
string(3) "AAA"
string(3) "BBB"

サンドボックス

ソースコードを編集してextract()の挙動を確認して下さい。

int(2)
string(3) "AAA"
string(3) "BBB"

参考リンク

  • PHP - 公式マニュアル。