Syntaxe
function compact($varname);
|
function compact($varname,$...);
|
Paramètres
Nom |
Description |
$varname |
Ce paramètre permet d'indiquer les données à compacter. |
Retour
Valeur |
Description |
tableau |
Ces valeurs permettent d'indiquer l'ensemble des paramètres réuni dans le tableau. |
Description
Cette fonction permet de regrouper des variables et des valeurs dans un tableau unique.
Remarques
- Création dynamique d'un tableau associatif : La fonction compact prend des noms de variables sous forme de chaînes de caractères et crée un tableau associatif où
les clefs sont ces noms et les valeurs sont les contenus des variables correspondantes. Cela permet de générer facilement un tableau sans avoir à définir chaque clef
manuellement.
- Équivalent inverse de extract : compact est souvent considéré comme l'inverse de extract. Alors que
extract convertit un tableau associatif en variables distinctes, compact fait l'inverse : il regroupe des variables individuelles en un
tableau. Cela peut être utile pour passer plusieurs variables à une fonction ou un gabarit.
- Ignore les variables non définies : Si une variable mentionnée dans compact n'existe pas dans le script, elle est simplement ignorée et ne sera pas ajoutée au
tableau final. Cela évite des erreurs fatales, mais peut aussi causer des problèmes si on s'attend à ce qu'une variable soit toujours définie.
- Accepte un nombre variable de paramètres : compact peut accepter plusieurs paramètres sous forme de chaînes de caractères (exemple : compact("var1", "var2")),
ou un tableau de noms de variables (ex: compact(["var1", "var2"])). Cela permet de construire un tableau associatif de manière flexible.
- Ne fonctionne qu'avec des variables du contexte actuel : compact ne peut extraire que des variables qui existent dans le scope où il est appelé. Il ne peut
pas récupérer des variables globales sauf si elles ont été déclarées dans le même contexte ou rendues accessibles via global.
- Utile pour passer des données aux fonctions ou vues : Dans les cadres d'applications PHP, compact est souvent utilisé pour envoyer des variables aux vues
dans des architectures MVC. Par exemple, dans Laravel ou Symfony, return view('page', compact('title', 'content')) permet de transmettre plusieurs variables
à une vue sans créer un tableau manuellement.
- Prend en charge les tableaux multidimensionnels : Si une variable passée à compact est elle-même un tableau, elle sera insérée telle quelle dans le tableau de
sortie. Cela permet de regrouper des structures complexes facilement sans modifier leur structure interne.
- Moins lisible que l'écriture explicite d'un tableau : Bien que compact réduise la quantité de code écrite, il peut parfois nuire à la lisibilité, surtout pour
ceux qui ne sont pas familiers avec cette fonction. Un tableau défini explicitement avec des clés et des valeurs peut être plus compréhensible pour d'autres développeurs.
Dernière mise à jour : Mercredi, le 25 mars 2015