Un array est en fait, comme le titre de ce chapitre l'indique, un tableau. Mais un tableau qui va nous servir à quoi exactement ? C'est très simple. Prenons une variable $ville qui vaut Paris. On a donc en PHP ceci lorsqu'on veut créer cette variable :
On dit que la ville où habite le visiteur est Paris. Et bien un array, c'est une variable dans laquelle on va faire correspondre un nom à une valeur. Ainsi, on pourra faire :
Nom > Dupont
Prénom > Patrick
Ville > Paris
Ce format d'array, je vous le réserve pour plus tard, soyez patients. Pour le moment, nous allons faire correspondre un chiffre à une valeur. Reprenons la composition de l'exemple précédent et occupons-nous uniquement des valeurs. On a donc successivement Dupont, Patrick et Paris. Lorsqu'on crée un array, on utilise la fonction array(). Si je veux faire un array à trois cases, je vais donc procéder ainsi :
Là, PHP va automatiquement créer une variable "coordonnées" qui listera en un tableau les coordonnées du visiteur. Ce tableau fera correspondre des chiffres allant de 0 à ... l'infini qui auront pour valeur ce que vous écrivez entre guillemets. Cela signifie qu'ici, nous avons 3 cases qui se présentent comme ceci :
0 > Dupont
1 > Patrick
2 > Paris
Ne vous trompez pas, la numérotation commence à partir de zéro. Faites vraiment attention à ce détail qui est souvent source de nombreuses erreurs! ;)
Bon, on a notre tableau, voyons comment afficher ce qu'il contient. On va afficher dans un simple echo. Vous vous rappelez du format un peu particulier des variables $_POST et $_GET ? Et bien c'est exactement le même ! En effet, $_POST et $_GET sont des arrays. Enfin, ne pressons pas les choses : vous avez tout le temps de vous intéresser plus amplement à ces variables. :)
Pour afficher un array, on fera donc comme ça :
Vous commencez à comprendre? :) En fait, pour que PHP sache dans quel array aller chercher les données (ici il n'y a qu'un tableau), on lui dit qu'il doit travailler sur la variable $coordonnees qui contient les coordonnées du visiteur. Ensuite, il faut préciser dans quelle entrée du tableau il faut chercher les données. C'est là qu'interviennent les crochets contenant le numéro de l'entrée qui correspond à ce qu'on veut afficher.
Voilà, c'est aussi simple que cela les arrays. N'hésitez pas à passer du temps sur ce petit code source, à faire des petits essais. Dans la partie qui va suivre, nous allons voir comment remplacer les chiffres des entrées de notre tableau par une chaîne de caractère : c'est ce qu'on appelle les tableaux associatifs! :)
Vous ne trouvez pas que ces tableaux ne sont pas très compréhensibles par nous, petits êtres humains qui relisons tant bien que mal notre code après ne plus y avoir touché pendant plusieurs jours ? :D
J'ai une solution à notre problème : créer nous-même le nom de nos entrées. Vous ne trouvez pas que ça serait plus facile pour s'y retrouver ? Pour créer un tableau associatif, nous allons toujours utiliser la fonction array() (décidemment, elle est très utile celle-là). Regardez comment procéder :
Pour schématiser la structure d'un tableau associatif, on a ceci :
"Ville" : C'est le nom d'une entrée du tableau. On est libres de choisir le nom qu'on veut (tant qu'il ne contient pas de caractères spéciaux).
" => " : Veut dire "Correspond à". On a donc la structure "nom" correspond à "valeur".
"Paris" : C'est la valeur qui correspond à l'entrée du tableau (ici la ville). Elle peut être un nombre ou une chaîne de caractères.
Voilà. En fait, si l'on prend une entrée (ligne) du tableau associatif, ce n'est en fait qu'un simple variable du type $variable = 'valeur'. Un array est donc une liste de variables qui peut vous faire gagner du temps. :)
Remarque : j'ai volontairement mis chaque entrée sur une nouvelle ligne mais vous êtes libres de présenter votre tableau associatif de cette manière :
C'est seulement un peu moins lisible. A vrai dire, c'est une question de goûts, et j'ajouterais que c'est ce genre de petits choses qui vont par la suite déterminer "votre" façon de coder, votre style s'il on peut dire. ;)
Je vous conseille de bien travailler vos exemples et de réaliser des petits scripts chez vous car il est important de bien comprendre cela. En effet, nous allons passer à un autre gros point du langage PHP : les boucles. Entre autres, grâce à ces dernières, vous allez pouvoir afficher en un clin d'oeil le contenu d'un array. Sachez tout de même que l'on approfondira le point des arrays lorsque vous aurez un peu plus d'expérience en PHP... Ah non, on ne pleure pas, vous pouvez déjà faire des scripts très sympas! ;)
Nous allons maintenant voir les boucles. Mais qu'est-ce que c'est exactement une boucle? Ca sert à quoi? Pas de panique, bientôt tout cela n'aura plus de secrets pour vous!
Pour commencer en douceur, nous allons voir la catégorie de boucles qui me semble la plus simple à comprendre lorsqu'on est débutant. En fait, une boucle va nous servir à répéter plusieurs fois une action un certain nombre de fois. Ce nombre de fois est comparé à une variable incrémentée (qui augmente de 1). Une fois que cette variable a atteint le nombre de fois que l'on veut voir s'exécuter la boucle (le nombre de "tours" de la boucle si vous voulez), cette dernière s'arrête. Regardez :
Je vous sens perdus là, détaillons cela :
Tout d'abord, sachez que while veut dire "pendant que" ou "tant que" en Français. On dit donc que "tant que" ce qui est entre parenthèses est vrai (vaut TRUE), on exécute les instructions qui se trouvent entre crochets. La structure est assez simple et pourrait rappeler celle des conditions.
En l'occurrence, dans cet exemple, on pourrait dire "Tant que le nombre de lignes est inférieur ou égal à 200, alors on continue d'écrire encore et encore la même phrase".
Intéressons-nous de plus près au contenu des parenthèses. Nous avons une variable $Lignes qui vaut 1 au début de l'exécution du script.
Ensuite, vient un signe : >= que vous avez déjà croisé dans le chapitre sur les conditions, ce dernier veut dire "supérieur ou égal à".
Pour finir, nous avons un nombre. En fait, ce nombre défini le nombre de fois que l'on veut écrire notre punition.
Mais notre variable $Lignes dans tout cela? Et bien à chaque passage de la boucle, cette variable va augmenter (être "incrémentée") de 1. Augmenter oui, mais grâce à quoi ? Et bien, c'est grâce à cette ligne : $Lignes++; qui équivaut à $Lignes = $Lignes +1.
Cela viendrait au même mais c'est quand même plus court et plus compréhensible avec deux signes + à la suite du nom de la variable (mais si, vous vous y ferrez... :D).
Pour bien voir que la variable $Lignes augmente, on peut le vérifier très simplement :
Voilà, avec cette petite boucle toute simple, vous êtes capables de faire n'importe quelle punition. Merci Noshade et le PHP! :D
Comme tout bon codeur qui se respecte, vous aimez bien les boucles while mais vous aimeriez aller un peu plus vite et par dessus le marché que votre boucle soit plus compréhensible à la lecture de son code? PHP a réalisé votre rêve et a crée une autre sorte de boucles. En fait, la méthode reste la même mais on gagne en efficacité (enfin personnellement, j'aime bien les boucles for :D).
Regardez ce code :
Vous avez vu? :)
On a en quelque sorte compressé la boucle while du dessus! Ici, ce qui nous intéresse c'est la parenthèse : à part le mot-clé for qui a remplacé while, rien ne change.
Alors, on a dans l'ordre dans la parenthèse trois éléments importants :
$Lignes = 1 : On initialise la variable qui va servir à compter le nombre de tours de la boucle. Contrairement à la boucle while, elle se trouve à l'intérieur de la parenthèse.
$Lignes >= 10 : On a là la condition qui va nous servir à dire à la boucle quand elle doit s'arrêter.
$Lignes++ : L'incrémentation. Contrairement à la boucle while, elle est dans la parenthèse. Surtout, n'oubliez pas cette incrémentation qui est VITALE dans toute sorte de boucle pour éviter tout plantage de votre code. Sans elle, votre boucle n'a pas de fin et provoquerait une erreur sur votre serveur!
N'oubliez surtout pas les points virgule ( ; ) entre chacun de ces trois éléments!
Et puis... C'est aussi simple que cela! ;)
À vous maintenant de voir dans quel cas utiliser soit une boucle For, soit une boucle While, c'est selon la place que vous lui attribuez dans votre script.
Avant de vous relâcher, je vais vous montrer une utilisation concrète des boucles. En effet, nous allons voir comment afficher en un clin d'oeil le contenu d'un array. Cela pourra vous être très pratique, vous allez voir! ;)
Admettons que j'ai une liste de courses dans un array. Je veux la lister pour pouvoir éventuellement l'imprimer ensuite par le biais de mon navigateur internet (qui a dit que c'était tordu comme exemple ? :D).
Allez, regardons ensemble ce code très intéressant :
Je n'ai pas beaucoup de remarques à faire sur ce code source si ce n'est l'echo qui est vraiment très pratique : on réutilise la variable $i (qui augmente de 1 à chaque passage de la boucle) pour dire à quelle entrée de l'array il correspond. Ainsi, $listeDeCourses[$i] pourra valoir $listeDeCourses[0], $listeDeCourses[1], $listeDeCourses[2] etc ...
Ah oui, dans la comparaison, le nombre de fois doit correspondre au nombre d'entrées dans votre array. Si vous avez 20 produits à acheter, remplacez le 6 par 20 ... Vous voyez, c'est presque enfantin de lister le contenu d'un array en PHP! :)
Vous avez compris tout ça ? Alors vous êtes plus que parés pour passer aux bases de données! ;)
Accrochez-vous bien, vous n'êtes pas loin du déluge de connaissances, c'est maintenant que vous allez commencer à vous régaler grâce à PHP! :)
Par : Legibe & Vinchz, le 5 septembre 2006