変数名をキーに、その値をバリューとして配列を生成する方法。
早い話が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()と同様、スマートな記述にはもってこいである。