Programmation PHP/Tableaux
Contributeurs aux projets Wikimedia
Article Images{{Chapitre}} : paramètre titre chapitre
manquant, dans paramètre titre ouvrage
manquant, chap. 4
Les tableaux
Un tableau est une collection d'objet. En PHP, ces objets n'ont pas forcément le même type (cohabitation entre des entiers, des chaines…). Chaque objet est identifié par une clé (indice).
Tableau itératifs
Les clés du tableaux sont des nombres. Par défaut, le premier indice est 0.
Exemple |
$tab = array('val1', 'val2', 'val3'); // $tab[0] vaut val1 /-/ $tab[1] vaut val2 /-/ etc. for($i = 0; $i<2; $i++) echo $tab[$i]; |
Ce code affichera : val1val2.
En PHP, on peut aussi directement affecter des indices du tableau, comme suit :
Notez que les indices ne sont pas typés (on pourra indifféremment utiliser $tab[1] et $tab['1']).
Tableaux associatifs
Ils fonctionnent de la même manière que les tableaux itératifs, sauf que l'utilisateur en choisit la clé. À chaque clé correspond une valeur (injection).
Voici un exemple de déclaration :
Exemple |
$tab = array('cle1' => 'val1', 'cle2' => 'val2', 'cle3' => 'val3'); print $tab['cle2']; //affichera: val2 //parcours du tableau en boucle foreach($tab as $key=>$value) print $key." : ".$value." "; |
La dernière boucle parcours le tableau en affichant d'abord les clés (cle1, cle2, cle3) puis les valeurs (val1, val2…) : cle1 : val1 cle2 : val2 cle3 : val3 .
Fonctions usuelles sur les tableaux
- count: cette fonction renvoie le nombre d'éléments présent dans le tableau.
Son prototype est: entier count(tableau);
Tableaux multi-dimensionnels
La clé d'un tableau peut pointer sur un second tableau créant ainsi un tableau multi-dimensionnel.
$indiv[] = array( 'nom' => 'Hubert', 'poste' => 'Gérant', 'Email' => 'hubert@test.com', 'idBureau' => 1 ); $indiv[] = array( 'nom' => 'Jean', 'poste' => 'Réceptionniste', 'Email' => 'reception@test.com', 'idBureau' => 1 ); $indiv[] = array( 'nom' => 'Amélie', 'poste' => 'Président', 'Email' => 'contact@test2.com', 'idBureau' => 2 ); $affBureau=1; foreach($indiv as $no => $data) { if($data['idBureau']==$affBureau) { echo $no .'-'. $data['nom'] .' <i>'. $data['poste'] .'</i>: '. $data['Email'] .'<br />'; } }
Résultat :
- 0-Hubert Gérant: hubert@test.com
- 1-Jean Réceptionniste: reception@test.com
- NB : Dans cette exemple, une base de données serait sûrement plus adéquate.
Les variables super globales
Ces variables sont prédéfinies à PHP et sont destinées à stocker des informations bien spécifiques. Elles se présentent généralement sous la forme d'un tableau associatif à une ou deux dimensions.
Voici une liste non-exhaustive (comprenant les cas d'utilisation les plus courants):
Variables de serveur : $_SERVER
Elle contient des informations sur le serveur (nom, IP, logiciels installés…)
Par exemple pour extraire l'URL de la page courante :
echo 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
Références
Variables d'environnement : $_ENV
Elle contient des informations sur l'environnement d'exécution du script PHP (c'est-à-dire sur le serveur). Elle est donc directement liée au serveur et à son système.
Cookies : $_COOKIE
Elle stocke les informations sur les cookies envoyés aux clients.
GET variables : $_GET
Elle stocke les valeurs des arguments passés par URL. Ses clés sont donc par conséquent variables.
POST variables : $_POST
Elle stocke les valeurs des informations passées par formulaire. Ses clés sont donc par conséquent variables. Voir le cours sur les formulaires.
Variable de téléchargement : $_FILES
Elle stocke les informations sur un fichier envoyé via HTTP par le client. Voir le cours sur les formulaires.
Variables de requête : $_REQUEST
Un tableau associatif constitué du contenu des variables $_GET, $_POST, $_COOKIE.
Variables de session : $_SESSION
Elle contient les valeurs de la session en cours pour le client.
Variables globales : $GLOBALS
Elle stocke les variables globales de la page. Ses clés sont donc variables.