変数名をキーに、その値をバリューとして配列を生成する方法。
早い話がextract()の間逆の動作をさせたい場合。
// 以下のような変数があったとする $param1 = 'hoge'; $param2 = 'piyo'; $param3 = 'fuga'; // compact()には配列形式にまとめた変数名リストで渡すこともできる $multi = array('param2', 'param3'); // 変数名を指定してやることで配列キーとバリューに突っ込んでくれる $array = compact('param1', $multi); var_dump($array); ↓ array(3) { ["param1"]=> string(4) "hoge" ["param2"]=> string(4) "piyo" ["param3"]=> string(4) "fuga" }
extract()と同様、スマートな記述にはもってこいである。