概要
閲覧数:1310
投稿日:2015-11-05
更新日:2015-11-05
第1引数の配列を変数として展開
・その際、配列のキーが変数名、配列の要素が変数の値となる
第2引数
・変数名として無効なキーが存在した場合や既存の変数名と衝突した場合の展開方法を定数で指定
第3引数
・第2引数で接頭辞を付ける指定をした場合の接頭辞を指定
・接頭辞は、元のキーとアンダースコアで区切られる
第2引数では、下記の定数を指定することが可能
・デフォルト値は、EXTR_OVERWRITEで第2引数以降は省略可能
EXTR_OVERWRITE
・既存の変数名と衝突した場合、上書き
・添字が数値の要素は展開しない
EXTR_SKIP
・既存の変数名と衝突した場合、展開しない
・添字が数値の要素も展開しない
EXTR_PREFIX_SAME
・既存の変数名と衝突した場合、キーの先頭に接頭辞を付けて展開
・添字が数値の要素は展開しない
EXTR_PREFIX_ALL
・添字が数値の要素も含めて、すべてのキーの先頭に接頭辞を付けて展開
・接頭辞を付けたことで既存の変数名と衝突した場合、上書き
EXTR_PREFIX_INVALID
・既存の変数名と衝突した場合、上書き
・添字が数値の要素のみ、キーの先頭に接頭辞を付けて展開
※接頭辞を付ける場合には、アンダースコア (_)が自動付与される
EXTR_IF_EXISTS
・既存の変数名と衝突する場合のみ、展開して上書
・添字が数値の要素は展開しない
EXTR_PREFIX_IF_EXISTS
・接頭辞を付けたキーが、既存の変数名と衝突する場合のみ、展開して上書き
・添字が数値の要素は展開しない
EXTR_REFS
・変数を参照として展開し、既存の変数名と衝突した場合は上書き
・添字が数値の要素は展開しない
・他のextract_type定数と和算して組み合わせることも可能
コード
$artist = 1; $ary = array('artist' => 'ブラウン', 'model' => '麻由', 0 => 'うちはサスケ'); $result = extract($ary, EXTR_PREFIX_INVALID, 'ninja'); var_dump($result); // 出力:int(3) echo $artist, PHP_EOL; // 出力:ブラウン echo $model, PHP_EOL; // 出力:麻由 echo $ninja_0, PHP_EOL; // 出力:うちはサスケ
結果
int(3) ブラウン 麻由 うちはサスケ