A compact() változó számú paramétert fogad el. Minden paraméter lehet egy változónevet tartalmazó sztring vagy akár tömb is. A tömbben lehetnek újabb tömbök is, amelyek a változók neveit tárolják, a compact() rekurzívan kezeli ezt.
A compact() a neve alapján megkeresi a változót az aktuális szimbólumtáblában, és hozzáadja a kimeneti tömbhöz. A változó neve lesz a kulcs és a kulcshoz tartozó tömbérték pedig a változó értéke. Röviden, az extract()-tal ellentétesen működik. Az összes hozzáadott változót tároló kimeneti tömbbel tér vissza.
Az a sztring, amelynek megfelelő változó definiálatlan, ki lesz hagyva.
Lásd még: extract()!