webmaster
Le langage PHP
Les Fonctions Et Les Tableaux- les fonctions
Une fonction est un bloc de code PHP destiné généralement à être réutilisé plusieurs fois. Plutôt que d'écrire plusieurs fois le même morceau de code, on met celui-ci dans une fonction, et c'est cette fonction que l'on appellera dès que l'on en aura besoin.
En PHP, il y a déjà des fonctions prédéfinies que l'on peut utiliser immédiatement. Pour autant, rien ne nous empêche d'en créer d'autres selon nos besoins. Et plus encore, on peut se servir des fonctions PHP pour créer nos propres fonctions.
Exemple de fonctions PHP prédéfinies.
1.1. Création d'une fonction en PHP
Pour créer une fonction en PHP on utilise en premier le mot clé 'fonction'. Il est obligatoire de le mettre pour dire que le bloc traité par PHP est une fonction. Ensuite, on met le nom de la fonction.
Une fonction peut ne pas retourner une valeur. Dans ce cas, on parle généralement de procédure. C'est juste pour structurer le code et pour alléger le code en évitant les répétitions. Exemple de procédure affichant "Hello word !":
Pour afficher Bonjour le monde ! n'importe où dans le code, il n'y aura plus qu'à taper ceci:
hello();
Mais la plus grande utilité des fonctions vient du fait qu'elles peuvent retourner une valeur. On peut se servir d'une fonction pour manipuler des variables. Au départ, on leur introduit des valeurs qu'on appelle les arguments de la fonction.
Le bloc de fonction est donc devenu comme une sorte de machine dans laquelle on manipule les paramètres. Après manipulation, la machine (en l'occurrence la fonction) retourne une valeur. Toutes les manipulations se déroulent à l'intérieur du bloc de fonction.
Nous venons de voir l'exemple d'une procédure qui ne contenait aucun paramètre. Une fonction peut avoir un ou plusieurs paramètres. Ces paramètres sont généralement des variables et peuvent être de types différents. Après avoir écrit le nom de la fonction, on énonce tous les paramètres entre les deux parenthèses.
En cas de plusieurs paramètres il faut les séparer par des virgules.
Voici un exemple de fonction simple qui calcule la division de 2 nombres. On met les deux nombres en paramètres. Le nombre retourné par la fonction est donc le résultat de la division des deux nombres. Le mot clé 'return' permet de retourner le résultat.
code PHP :
1.2. Comment appeler une fonction PHP avec paramètres ?
Pour appeler une fonction, il suffit de l'appeler par son nom et de spécifier les valeurs des paramètres.
Si nous voulons par exemple appeler la fonction division($nombre1, $nombre2), il suffit de faire comme dans le code ci-dessous:
code PHP :
Remarquez bien qu'il y a un ordre dans la disposition des paramètres dans la définition de la fonction. Si l'on intervertit les paramètres, il y a de fortes chances que l'on n'ait pas le résultat attendu.
Autrement dit, division(10, 2); ne donnera évidemment pas le même résultat que division(2,10);
1.3. Valeurs par défaut des paramètres d'une fonction
Nous pouvons également assigner des valeurs par défaut aux paramètres.
code PHP :
Ici, nous assignons comme valeurs par défaut les nombres 10 et 2. Si nous ne spécifions pas les valeurs des paramètres lors de l'appel de la fonction, nous obtiendrons 5 comme résultat.
Lorsque l'on met des valeurs par défaut, les deux paramètres ne sont pas obligatoires lors de l'appel de la fonction. Dans nos exemples, on a toujours fait l'appel de la fonction juste en bas de la définition de la fonction. Tout se passe donc dans le même fichier.
Mais lorsqu'on a plusieurs fonctions, et qu'on veut utiliser les mêmes fonctions dans différents fichiers, il devient fastidieux de répéter les définitions des fonctions en haut de chaque fichier. PHP nous offre la possibilité de créer une sorte de bibliothèque de fonctions et de les inclure tout simplement au début de chaque fichier.
1.4. inclusion des fichiers en PHP dans les pages HTML : include & require
Dans une programmation en PHP, sans l'inclusion de fichiers on serait obligé de copier-coller le même code sur toutes les pages qui nécessitent une instruction identique.
Comme pour les fonctions par exemple, il se peut que vous ayez à utiliser les mêmes fonctions dans des fichiers différents. Vous auriez donc à recopier la définition de chaque fonction en haut de chaque page. Cette méthode rendrait les mises à jour plus difficiles. En effet, ça vous obligerait à parcourir toutes les pages pour modifier les définitions des fonctions.
Ce serait très malheureux de perdre du temps à faire ça alors qu'on a la possibilité de l'éviter en centralisant tout dans un même fichier.
1.4.1. Inclure un fichier avec la fonction include
Supposons que l'on a quelques fonctions sur le calcul des prix. On en aura souvent besoin dans les pages de notre site. On va les regrouper dans un fichier prix.php et on va essayer de l'inclure dans un fichier. Afin d'éviter de trimbaler ces fonctions partout, la fonction include nous servira d'inclusion de fichier.
La fonction en question se remplace elle-même par le contenu du fichier spécifié.
Contenu de prix.php :
On va créer une nouvelle page nommée catalogue.php, on a par exemple le prix hors taxe au départ. Cependant, on a besoin d'afficher le prix TTC.
contenu de catalogue.php
Dans une autre page, facture.php par exemple, on a besoin des différents prix et de calculer aussi la remise.
contenu de facture.php :
On 'inclue' le contenu du fichier prix.php dans les autres fichiers, en l'appelant par la fonction 'include', et en lui passant en paramètre le nom du fichier à include (dans l'exemple: prix.php).
1.4.2. Inclure des fichiers avec la fonction Require
L'instruction require fonctionne de la même façon qu'include. Toutefois, il existe une différence entre ces deux méthodes. Lorsque vous tentez d'inclure un fichier avec include, si le fichier n'existe pas, PHP affichera une alerte (warning).
Cela veut dire qu'il va vous signaler tout simplement l'erreur mais il continuera l'exécution du script. A l'inverse, la fonction require génèrera une erreur fatale. Il interrompe votre script en cas d'erreur. En d'autres termes, utilisez require() si vous voulez que votre script soit interrompu en cas d'inclusion manquant.
Exemple : Mélanger HTML et PHP
On a parlé de page web, catalogue, etc. mais jusqu'à présent nous n'avons pas trop abordé un sujet important :
Comment mélanger du PHP avec du html ? Voici venu ce moment propice que tout le monde a attendu. En fait, il est bel et bien possible de mettre du HTML dans du PHP.
C'est d'ailleurs le but ultime de l'application de PHP dans le domaine de web. Pour cette expérience, utilisons 3 fichiers:
Contenu du fichier header.php :
contenu du fichier footer.php:
contenu du fichier index. Php
Bien sûr, notre page a encore besoin d'une retouche. Néanmoins, la base est déjà là. Ce qui est intéressant c'est que là encore on a bien vu l'intérêt des inclusions de fichier.
En effet, le haut et le bas de page ne changent pas lors de la navigation. Toutes les pages n'ont peut-être pas les mêmes contenus, mais le haut et le bas de page restent les mêmes quel que soit la page.
Dans ce cas, il suffit d'inclure le fichier header.php, et le fichier footer.php dans toutes les pages. S'il y a quelque chose à modifier dans le fichier haut.php, on aura juste à toucher un seul fichier, et ceci impactera l'ensemble des pages faisant l'include.
Par conséquent, structurez votre page ainsi vous évitera certains problèmes.
1.4.4. Inclusion avec les fonctions require_once et include_once
Notez bien qu'il y a aussi deux autres fonctions require_once et include_once qui peuvent vous être utiles.
Il fonctionne de la même façon que require et include mais la différence est qu'elles s'assurent que le fichier n'a pas déjà été inclus. Il est conseillé de les utiliser lorsque vous voulez être sûrs que le fichier ne sera inclus qu'une seule fois, notamment pour éviter les déclarations qui engendrent des erreurs.
Un fichier rempli de fonctions, par exemple, ne peut être inclus qu'une seule fois (par exécution). Les fonctions étant déjà déclarées, elles ne peuvent l'être une seconde fois, et cela génèrerait une erreur.
2. Les tableaux en PHP
PHP propose une autre façon de grouper et de manipuler les données: les tableaux. Il y a deux types de tableaux:
- les tableaux à index numériques
- les tableaux associatifs. Ces deux types de tableau ont chacun leur syntaxe de déclaration.
2.1. Les tableaux à index numériques : array
Il s'agit d'une simple liste d'éléments. Pour les créer, on emploi le mot clé array(), et on sépare les éléments par des virgules. Dans la liste, chaque élément est repéré par un numéro unique. Ce numéro est appelé index et est attribué automatiquement suivant les ordres.
Pour avoir accès à la valeur de chaque élément, on met la variable tableaux suivis de l'indice de l'élément mis entre crochet. Lors de la déclaration d'un tableau, il n'est pas nécessaire d'indiquer leur taille. Ceci est géré par PHP. Dans un tableau indexé numériquement le premier indice est par défaut 0.
2.1.1 Boucle, Tableau et fonction count
La fonction count permet d'avoir le nombre d'éléments que contient un tableau. En faisant un peu de révision sur les boucles, on peut avoir un code plus souple à partir du même exemple :
code PHP :
2.2. Les tableaux associatifs en PHP
Lors de la définition d'un tableau associatif, on indique nous même les indices du tableau. Dans la mesure où l'on est libre de les spécifier nous même, les indices peuvent être non seulement des nombres mais aussi des textes. Dans ce cas on parle de 'clé'. Ce type de tableau est très pratique dans le cas où l'on s'intéresse à la signification des valeurs contenues.
Toujours à l'aide du mot clé array, la définition d'un tableau associatif a la syntaxe suivante :
On sépare donc les différentes clés valeur par des virgules. Pour accéder à un élément du tableau, on peut faire comme précédemment en indiquant la valeur de la clé comme indice. Voyons tout cela dans un exemple plus concret :
code php :
2.2.1. Afficher tous les éléments d'un tableau : foreach
Si on veut afficher tous les éléments du tableau, en affichant chaque clé et chaque valeur, on peut utiliser l'instruction foreach comme ceci :
code PHP:
2.2.2. PHP et tableaux multidimensionnels
Dans notre exemple, on a eu à gérer un tableau avec une seule personne. Vous imaginez peut-être un tableau de plusieurs personnes, dont chaque personne a son prénom, nom et téléphone. Une bonne idée mais comment faire ?
Pour cela, il faut faire ce que l'appelle un tableau multidimensionnel. Pour faire plus simple, nous nous limiterons aux tableaux à deux dimensions sachant qu'on peut en faire à plusieurs dimensions. Définissons alors des personnes avec chacun leur numéro, nom , prenom et telephone.
Après, on peut accéder à leur valeur individuellement (par exemple on veut juste avoir le prénom de la première personne).
En utilisant l'instruction foreach , on aura :
3. Manipuler les tableaux PHP avec des fonctions
PHP propose de nombreuses fonctions très puissantes pour manipuler des tableaux.
Comme vous allez le voir, il est très facile de trier un tableau ou de compter ses éléments.
3.1. Connaitre la taille d'un tableau : count
On entend par taille d'un tableau le nombre d'éléments que contient le tableau. Ceci est d'un intérêt multiple dont le principal est au niveau des compteurs de boucle. Dans la mesure où l'on désire utiliser une boucle pour l'affichage d'un tableau, il est nécessaire de connaitre la taille d'un tableau pour spécifier l'arrêt du compteur.
La fonction PHP count() renvoie la taille du tableau qu'on lui passe en paramètre :
code PHP :
3.2. Recherche d'un élément dans un tableau : in_array
La fonction in_array() indique si une valeur appartient à un tableau. Cette fonction nous informe de la présence d'un élément dans le tableau en nous renvoyant TRUE s'il l'a trouvé et FALSE dans le cas contraire. Elle a en premier argument l'élément recherché, et en deuxième argument le tableau en question.
Si la fonction in_array() permet de vérifier la présence d'un élément dans le tableau, une autre fonction nous permet d'avoir la clé correspondante de l'élément recherché. Il s'agit de la fonction array_search() qui fonctionne de manière similaire à in_array().
La différence est qu'elle retourne la clé correspondante de l'élément qu'elle a trouvé et FALSE si l'élément n'a pas été trouvé.
code PHP:
3.2. Nombre d'occurrences d'un élément et gestion des doublons : array_count_value
Le nombre d'occurrences d'un élément d'un tableau est donné par la fonction array_count_value(). Elle renvoie pour chaque valeur le nombre d'occurrences trouvé dans un tableau associatif. Prenons toujours l'exemple des étudiants, en comptant le nombre de fois où Marianne apparait dans le tableau.
Nous avons vu que Kevin apparait deux fois dans le tableau. Dans le cas où l'on a besoin de supprimer les doublons, la fonction array_unique () est à notre disposition. Elle retourne un nouveau tableau sans doublons quand on lui passe en paramètre le premier tableau.
suppression des doublons
3.3. Trier les tableaux avec PHP
Comme nous allons le voir, il est possible de trier un tableau de différente manière. Là encore, la souplesse de PHP va nous simplifier la tâche.
3.3.1. Tri d'un tableau par valeur
La manière la plus simple et la plus utilisée pour trier les tableaux est de les trier par valeurs. Si l'on veut avoir par exemple un tableau des étudiants par ordre alphabétique, la fonction sort() permet de faire le tri. L'argument fourni sera le tableau lui-même.