Vous êtes sur la page 1sur 32

M.

Wane

Les Bases de PHP

M.WANE
Ingénieur Informaticien/Formateur
Analyste, Concepteur
Développeur d'Application

Email:douvewane85@gmail.com

1
M.Wane

Objectifs
 Comprendre la Communication Client –Serveur
 Comprendre le Fonctionnement d’un site PHP
 Etre Capable de Manipuler les Eléments du Langage PHP
 Variables et Constantes
 Structures de Controle
 Fonctions
 Tableaux
 Chaines
 Dates
 Inclusion des Pages
 PHP et Base De Donnes
 Mysqli
 PDO
 Concevoir une Application avec le Pattern MVC

Prérequis conseillés:
 Bonne connaissance du web
 Connaitre au Préalable les langages
 HTML surtout la version 5
 CSS surtout la version 3 avec des outils tels que (Flex Box,
SASS et Bootstrap)

Liens utiles :

 HTML 5, CSS3 et Flexbox


 Responsive Design
 Bootstrap

Description

Ce cours vous apprendra à aborder tous les aspects du langage PHP, depuis la
syntaxe jusqu'aux meilleures techniques de programmation. De nombreux
exemples facilitent la compréhension par l'expérience. Nous verrons également
d'autres aspects comme les méthodes de Test d'applications ainsi qu'une vision
globale de la communauté PHP.

2
M.Wane

Cours : 1

Objectifs
 Comprendre la Communication Client –Serveur
 Comprendre le Fonctionnement d’un site PHP
 Etre Capable de Manipuler les Eléments du Langage PHP
 Variables et Constantes
 Structures de Contrôle

I) LES CONCEPTS DE BASE :


Le World Wide Web, littéralement la « toile (d’araignée) mondiale », communément appelé
le Web, le web parfois la Toile ou le WWW, est un système hypertexte public fonctionnant
sur Internet qui permet de consulter, avec un navigateur, des pages accessibles sur des sites.

Une ressource du web est une entité informatique (texte, image, forum Usenet, boîte aux
lettres électronique, etc.) accessible indépendamment d’autres ressources. Une ressource en
accès public est librement accessible depuis Internet. Une ressource locale est présente sur
l’ordinateur utilisé, par opposition à une ressource distante (ou en ligne), accessible à travers
un réseau.

On ne peut accéder à une ressource distante qu’en respectant un protocole de communication.


Les fonctionnalités de chaque protocole varient : réception, envoi, voire échange continu
d’informations.

HTTP (pour HyperText Transfer Protocol) est le protocole de communication


communément utilisé pour transférer les ressources du Web.

HTTPS est la variante sécurisée de ce protocole.

Une URL (pour Uniform Resource Locator) pointe sur une ressource. C’est une chaîne de
caractères permettant d’indiquer un protocole de communication et un emplacement pour
toute ressource du Web. (exemple : http://www.univ-chlef.dz).

Un hyperlien (ou lien) est un élément dans une ressource associé à une URL. Les hyperliens
du Web sont orientés : ils permettent d’aller d’une source à une destination.

HTML (pour HyperText Markup Language) et XHTML (Extensible HyperText


Markup Language ) sont les langages informatiques permettant de décrire le contenu d’un
document (titres, paragraphes, disposition des images, etc.) et d’y inclure des hyperliens. Un
document HTML est un document décrit avec le langage HTML. Les documents HTML sont
les ressources les plus consultées du Web.

3
M.Wane

Dans un mode de communication client-serveur, un serveur est un hôte sur lequel fonctionne
un logiciel serveur auquel peuvent se connecter des logiciels clients fonctionnant sur des hôtes
clients.

Un serveur Web est un hôte sur lequel fonctionne un serveur HTTP (ou serveur Web). Un
serveur Web héberge les ressources qu’il dessert.

Un navigateur Web est un logiciel client HTTP conçu pour accéder aux ressources du Web.
Sa fonction de base est de permettre la consultation des documents HTML disponibles sur les
serveurs HTTP. Le support d’autres types de ressource et d’autres protocoles de
communication dépend du navigateur considéré.

Une page Web (ou page) est un document destiné à être consulté avec un navigateur Web.
Une page Web est toujours constituée d’une ressource centrale (généralement un document
HTML) et d’éventuelles ressources liées automatiquement accédées (typiquement des
images).

Un éditeur HTML (ou éditeur Web) est un logiciel conçu pour faciliter l’écriture de
documents HTML et de pages Web en général.

Un site Web (ou site) est un ensemble de pages Web et d’éventuelles autres ressources, liées
dans une structure cohérente, publiées par un propriétaire (une entreprise, une administration,
une association, un particulier, etc.) et hébergées sur un ou plusieurs serveurs Web.

Une adresse Web est une URL de page Web, généralement écrite sous une forme simplifiée
limitée à un nom d’hôte. Une adresse de site Web est en fait l’adresse d’une page du site
prévue pour accueillir les visiteurs.

Un hébergeur Web est une entreprise de services informatiques hébergeant (mettant en


ligne) sur ses serveurs Web les ressources constituant les sites Web de ses clients.

Une agence Web est une entreprise de services informatiques réalisant des sites Web pour ses
clients.

Un annuaire Web est un site Web répertoriant des sites Web.

Un portail Web est un site Web tentant de regrouper la plus large palette d’informations et de
services possibles dans un site Web. Certains portails sont thématiques. Un service Web est
une technologie client-serveur basée sur les protocoles du Web.

4
M.Wane

I) Comprendre la Communication Client –Serveur


1) Présentation de l’architecture client-serveur:
De nombreuses applications fonctionnent selon l’architecture client/serveur qui
dispose de deux entités reliées par un réseau (intranet, internet, …). Chaque entité
englobe l’aspect hardware (machine) et software (logiciel). Une machine cliente
exécute une application cliente qui interagit avec une application serveur qui tourne
sur une machine serveur et qui lui fournit un service.

5
M.Wane

2) Dialogue client-serveur
Pour dialoguer et se comprendre, une application cliente et une application serveur utilisent
un ensemble de règles communes (les protocoles) et suivent un modèle de communications
(OSI, TCP/IP, …).

2.1 La couche application et ses protocoles


Elle englobe les protocoles applicatifs et permet de relier une application au réseau. Une
application cliente sur une machine cliente utilise un protocole compatible à celui utilisé par
l’application serveur avec qui elle veut dialoguer.

(1) Exemples de protocoles applicatifs


 HTTP: (HyperText Transfer Protocol) développé pour le Web il permet de
transférer des documents (au format HTML pour la plupart).
 FTP : (File Transfer Protocol), est utilisé pour l'échange de fichiers situés
sur deux ordinateurs distants.
 SMTP: (Simple Mail Transfer protocol) est utilisé pour transférer le
courrier électronique vers les serveurs de messagerie.
 POP: (Post Office Protocol) permet de récupérer les courriers
électroniques situés sur un serveur de messagerie.
 IMAP : (Internet Message Access Protocol) permet comme POP de
récupérer les courriers électroniques sur un serveur de messagerie mais
en laissant les courriers sur le serveur.

6
M.Wane

2.2 Exemple d’applications serveur et clientes:

2.3 Connexion à un serveur:


Pour envoyer des requêtes à un serveur, un client a besoin de plus ou moins d’informations
selon le type de serveur (web, ftp, ssh, mysql, …):

 L’adresse IP: Le client doit connaître l’adresse IP de la machine qui héberge


l’application serveur. Généralement un nom est associé à l’adresse IP via un serveur
DNS (Domain Name Server).
 Données d’authentification : Pour certaines connections un login et un mot de passe
sont demandés par le serveur. Exemple des serveurs de base de données (mysql,
postgres, oracle, …), ftp (accès anonyme possible), imap, …
 Port : Plusieurs instances de serveurs peuvent tourner sur une machine mais chacune
d’elle ne s’intéresse qu’aux requêtes qui lui sont destinées.
Pour cela une application cliente et une application serveur se mettent d’accord sur
un numéro entier appelé port exclusivement utilisé par l’application serveur sur la
machine.
NB : L’adresse IP permet d’identifier de manière unique un ordinateur dans un
réseau et le port permet d’identifier une application serveur unique sur une machine.
A chaque application serveur est attribué un numéro de port par défaut :
smtp(25), http (80), https (443) ftp (21), ssh (22), dns (53), ldap (389), mysql (3306)…
Il est possible par configuration de changer ce port par défaut.

7
M.Wane

II) Comprendre le Fonctionnement d’un Application Web sous PHP


II .1) Fonctionnement des Applications Web

On considère qu'il existe deux types des applications web : les sites statiques et les
sites dynamiques.

1) Les applications web statiques : Ce sont des applications web réalisées


uniquement à l'aide des langages HTML et CSS. Ils fonctionnent très bien mais
leur contenu ne peut pas être mis à jour automatiquement.

Fonctionnement

2) Les applications web dynamiques : plus complexes, ils utilisent d'autres


langages en plus de HTML et CSS, tels que PHP et MySQL. Le contenu de ces
applications web est dit « dynamique » parce qu'il peut changer sans
l'intervention du webmaster ! La plupart des sites web que vous visitez
aujourd'hui, sont des sites dynamiques.

Fonctionnement

a. Le client demande au serveur à voir une page web ;


b. le serveur prépare la page spécialement pour le client ;
c. le serveur lui envoie la page qu'il vient de générer.

8
M.Wane

II.2) Environnement de Travail

1) Un éditeur de texte : en théorie, un programme tel que le Bloc-notes livré avec


Windows suffit, bien qu'il soit recommandé d'utiliser un outil un peu plus évolué
comme Notepad++,atom,vscode..

NB : Dans ce cours nous utiliserons vscode

2) Un navigateur web : il permet de tester la page web. Vous pouvez utiliser par
exemple Mozilla Firefox, Internet Explorer, Google Chrome, Opéra, Safari, ou tout
autre navigateur auquel vous êtes habitués pour aller sur le web.

NB : Il est conseillé de tester son application régulièrement sur différents


navigateurs.

3) Apache : c'est ce qu'on appelle un serveur web. Il s'agit du plus important de tous
les programmes, car c'est lui qui est chargé de délivrer les pages web aux
visiteurs. Cependant, Apache ne gère que les sites web statiques (il ne peut
traiter que des pages HTML). Il faut donc le compléter avec d'autres programmes.

4) PHP : c'est un plug-in pour Apache qui le rend capable de traiter des pages web
dynamiques en PHP. En clair, en combinant Apache et PHP, notre ordinateur sera
capable de lire des pages web en PHP.

5) MySQL : c'est le logiciel de gestion de bases de données. Il permet d'enregistrer


des données de manière organisée dans une base de données.

6) Dans ce cours nous utiliserons le paquetage WAMP Server (Windows Apache


Mysql PHP) pour Windows qui a l'avantage d'être régulièrement mis à jour et
disponible en français.

 Une fois téléchargée, installez-le en laissant toutes les options par défaut. Il
devrait s'installer dans un répertoire comme C:\wamp et créer un raccourci

dans le menu Démarrer

 Par défaut, WAMP est en anglais. Vous pouvez facilement le passer en


français en faisant un clic droit sur l'icône de WAMP dans la barre des tâches,
puis en allant dans le menu Language / french (fig. suivante).

9
M.Wane

 Lancer la page d'accueil de WAMP : Faites un clic gauche sur l'icône de


WAMP (attention, on fait un clic gauche cette fois), puis cliquez
sur Localhost, comme le montre la figure suivante.

Une page web similaire à la capture de la figure suivante devrait s'ouvrir dans votre
navigateur favori (Firefox, par exemple). Si la page s'affiche chez vous, cela signifie
qu'Apache fonctionne.

10
M.Wane

NB : On peut accéder à la même page en tapant URL http://localhost/

 Création d’un Projet :


1) Pour ce faire, ouvrez l'explorateur Windows et rendez-vous dans le
dossier où WAMP a été installé, puis dans le sous-dossier intitulé www.
Par exemple : C:\wamp\www
2) créez un nouveau sous-dossier
Par exemple : création du dossier tests.

3) Accéder au Dossier crée : Taper sur l’URL


http://localhost/Nom_Dossier

11
M.Wane

Par exemple : http://localhost/tests/

III) Eléments De Bases du Langage PHP


PHP est un langage de script, c'est-à-dire que le code est enregistré sous forme de
fichier texte (extension .php) sur le disque dur (répertoire
C:\wamp\www\Nom_Dossier), et qu'il est exécuté à la demande par un programme
chargé de l’interpréter (Serveur Web Apache +PHP).

Les pages PHP peuvent intégrer :

 De l’HTML
 Du CSS (inline, interne ou externe)
 Du JavaScript
 Du PHP

III.1) Les Balises PHP


Syntaxe

<?php /* Le code PHP se met ici Et ici Et encore ici */ ?>

12
M.Wane

Exemple

Emplacement : C:\wamp\www\ tests\ page1.php

Exécution : http://localhost/tests/page1.php

<!DOCTYPE html>

<html>

<head>

<title>Ceci est une page de test avec des balises PHP</title>

<meta charset="utf-8" />

</head>

<body>

<h2>Page de test</h2>

<?php

/* Encore du PHP

Toujours du PHP */

?>

</body>

</html>

III.2) L’instruction d’affichage


Les fonctions echo ou print sont utilisées pour afficher des constantes ou des variables en
PHP. Cependant c’est la fonction qui est la plus utilisée.

Exemple :

a) <?php echo "Ceci est du texte"; ?>


b) <?php echo "Ceci est du <strong>texte</strong>"; ?>
c)
d) S’il y a des guillemets dans le texte on les précède d’un antislash

<?php echo "Cette ligne a été écrite \"uniquement\" en PHP."; ?>

Exercice 1 : Créer la page1.php dans le dossier www\base_php

13
M.Wane

III.3) Commentaires
Un commentaire est un texte que vous mettez pour vous(le développeur) dans le
code PHP. Ce texte est ignoré, c'est-à-dire qu'il disparaît complètement lors de la
génération de la page.
 Les commentaires mono lignes est un commentaire sur une seule ligne est
représenté par deux slashs : «//».
Exemple

<?Php
echo " Mon nom est Diop."; // Cette ligne indique mon Nom

// La ligne suivante indique mon âge


echo "J'ai 42 ans.";
?>
 Les commentaires multi lignes un commentaire sur plusieurs lignes
commence par /* puis refermer par */
Exemple

<?Php
/*
Cette ligne indique mon Nom
La ligne suivante indique mon âge
*/
echo " Mon nom est Diop et J'ai 42 ans.";
?>
III.4) Configurer PHP pour visualiser les Erreurs
Par défaut, PHP n'affiche pas les erreurs pour éviter de donner trop d'indications aux
utilisateurs pour des raisons de sécurité.
La configuration de PHP se fait dans un fichier appelé "php.ini". Pour connaitre
l'ensemble des informations relatives au PHP utilisé par le serveur web, il existe une
commande PHP phpinfo().

Modifier les clés error_reporting=E_ALL et display_errors = on.

III.4) Variables
a) Définition
Une variable, c'est une petite information stockée en mémoire temporairement

14
M.Wane

b) Type de Variables

• array : un tableau (ensemble de valeurs) ;


• object : un objet (instance de classe) ;
• resource : une ressource (type abstrait, inutilisable par le
programmeur, utilisé uniquement pour des fonctions) ;

c) Affectation d’une Variable


$nomVariable=valeur ;

Exercice 2 : Créer la page2.php dans le dossier www\base_php qui permet de déclarer et


d’affecter des variables puis les affichent.

Résultat :

15
M.Wane

NB : En PHP, l’identificateur d’une variable est toujours précédé d’un $

Remarques

1) Lorsqu’une variable ne contient rien, vous devez lui passer la valeur null ;
2) Les variables déclarées et initialisées dans un fichier ne sont visibles que dans ce
fichier, elles sont locales à ce fichier.
3) La concaténation permet de coller une chaine a une variable, elle se fait à l’aide

.
l’opérateur point( );
Exemple

<?php

//Déclaration et Initialisation
$nom= "Diop ";
$age= 42;
//Affichage avec Concaténation
echo 'Mon Nom est : '. $nom. 'Mon Age est'. $age;

?>

Exercice 3 : Créer la page3.php dans le dossier www\base_php qui permet de déclarer et


d’affecter des variables puis les affichent en utilisant la concaténation.

16
M.Wane

d) Les Variables Super globales


Les variables super globales sont mises en place par PHP lors du début du traitement d'une
demande par Apache.
Ces variables n'obéissent pas aux limites habituelles des variables en termes de visibilité à
l'intérieur d'une fonction. Elles sont accessibles de partout, c'est pourquoi elles portent le
nom de "superglobales".

Voici les super globales :

• $_GET : Les valeurs provenant de l'URL ;

• $_POST : Les valeurs envoyées par formulaire ;

• $_FILE : Les fichiers envoyés par formulaire ;

• $_SERVER : Les valeurs mises en place par le serveur Web (elles peuvent donc changer
d'une configuration à l'autre) ;

• $_ENV : Les variables d'environnement (système d'exploitation) ;

• $_SESSION : Les valeurs mises dans le magasin des sessions ;

• $_COOKIE : Les valeurs transmises au moyen de cookies par le navigateur ;

• $GLOBALS : L'ensemble des variables du script.

III.5) Constantes
Une constante est une valeur d’un type de variable, par exemple :

 1 est une constante de type Int


 2.5 est une constante de type float
 "Diop " ou 'Diop' sont des constantes de types chaines;
 True ou false sont des constantes de types booléens;

NB : Une Constante peut être associée à un identificateur en php suivant la syntaxe

define ("identicateur", valeur) ;

Exemple : define("PI" ,3.14) ;

NB :

Il existe des "constantes magiques" qui n'obéissent pas totalement aux règles des
constantes. Elles existent dans tous les scripts sans qu'il soit nécessaire de les déclarer par

17
M.Wane

programmation. On ne peut bien entendu pas les modifier par programmation, néanmoins
leur valeur peut changer au fil de l'exécution du script.

De plus, on peut les appeler indifféremment en majuscules ou en minuscules.

Chacune de ces constantes contient une valeur qui change selon le contexte dans lequel elle
est appelée.

• __LINE__ : La ligne de code en cours ;

• __FILE__ : Le nom complet du script en cours ;

• __DIR__ : Le nom du répertoire du script en cours (depuis les versions 5.3 et 6.0 de PHP) ;

• __FUNCTION__ : La fonction en cours ;

• __CLASS__ : La classe en cours, similaire à get_class($this) ;

• __METHOD__ : La méthode en cours ;

• __NAMESPACE__ : L'espace de noms en cours (depuis les versions 5.3 et 6.0 de PHP).

III.6) Fonctions utiles


1) La fonction var_dump () affiche le type d'une variable et son contenu (ainsi que sa taille
si c'est une chaîne). Elle s'applique aussi bien aux variables scalaires qu'aux objets,
tableaux, ressources...

<?php
Résultat

//Déclaration et Initialisation
$nom= "Diop ";
$age= 42;
var_dump($nom) ;

?>
2) La fonction gettype() permet de déterminer le type d'une valeur, ou
get_resource_type() si c'est une ressource. Il existe également une fonction is_*()
spécifique pour chaque type.

18
M.Wane

Valeurs de retour possibles pour gettype() :


• boolean
• integer
• double
• string
• array
• object
• resource
• NULL

III.7) Les Operateurs


a) Les opérateurs arithmétiques :

+ - * / %
b) Les opérateurs d’affection et d’affectation composée :

= += -= *= /= .=
c) Les opérateurs d’incrémentation et de décrémentation

 ++ (a++ ou ++a)
 -- (a -- ou -- a)

d) Les opérateurs relationnels


== === != <> !== > >= < <=

e) Les opérateurs logiques


 && ou and
 || ou or
f) L'opérateur ternaire "?" est une alternative
Syntaxe
Condition ? Expression1 :Expression2
Si la condition est vraie on exécute l’Expression1 sinon Expression2

Exemple : <?php
echo 1==1 ? "Vrai" : "Faux" //Résultat
echo 1.0===1 ? "Vrai" : "Faux" //Résultat
echo 1.0==1 ? "Vrai" : "Faux" //Résultat ?>

19
M.Wane

Exercice 3
1) Ecrire un programme qui initialise un entier et un réel puis affiche
 La somme
 Le produit
 Le quotient
2) Ecrire un programme qui initialise la longueur et la largeur d’un rectangle puis
affiche
 Le Périmètre
 La surface
 La longueur d’un des Diagonales

III.7) Les Structures de Contrôle


a) Structures alternatives
 Conditionnelle if ……. else
If (condition) {
Instruction 1 ;
.
.
Instruction n;
} else {
Instruction 1 ;
.
.
Instruction n;

Condition est une expression logique c’est retourne comme résultat true(1) ou
false(0).

Fonctionnent

Si la Condition est évaluée à TRUE, alors on rentre dans le bloc du if; sinon, on rentre dans la block
du "else" (qui est facultative).

20
M.Wane

Exercice d’application

1) Ecrire un programme qui saisit un nombre entier positif puis affiche son signe
2) Ecrire un programme qui saisit deux nombres entiers positifs puis les trie dans l’ordre
croissant
3) Ecrire un programme qui saisit le rayon d’un cercle puis détermine et affiche
La circonférence et l’aire du cercle.
 Alternative "switch"
switch(expression){
case valeur1:
Instruction 1 ;
.
Instruction n;
break;
case valeur2:
Instruction 1 ;
.
Instruction n;
break;
...
default:
}
Nb :

 Lorsqu'une variable ou une instruction peut prendre une valeur parmi une liste
connue, alors il est préférable d'utiliser le mot clef "switch" plutôt que des "if/else.
 Le mot clef "break" oblige PHP à sortir du bloc switch

Exercice d’application

1) Ecrire un programme qui permet la sélection d’un mois en entier puis affiche sa
correspondance en chaine

Exercice 4

 Ecrire un programme qui saisit un entier et un réel positifs puis affiche


 La somme
 Le produit
 Le quotient

21
M.Wane

 Ecrire un programme qui saisit la longueur et la largeur d’un rectangle puis


affiche
 Le Périmètre
 La surface
 La longueur d’un des Diagonales

Exercice 5 : Ecrire un programme qui saisit trois nombres entiers positifs puis les trie dans
l’ordre croissant

NB : Dans ces deux exercices les valeurs sont entrées à l’aide d’un formulaire.

Exercice 6 : Ecrire un programme qui saisit un mois et une année puis détermine et affiche
le nombre de jours de ce mois dans cette année.

b) Structures itératives

Les Structures itératives permettent de répéter un ensemble d’instructions tant qu’une


condition est vérifiée. On distingue 4 structures répétitives en PHP :

 Boucle "for"
 Boucle "while"
 Boucle "do while"....
 Boucle foreach (sera vu avec les Tableaux)

Fonctionnent D’une Boucle

22
M.Wane

1) Boucle "while"
Syntaxe
<?php
while (Condition)
{
// instructions à exécuter dans la boucle
}
?>

2) Boucle "for"
Syntaxe
<?php
for (initialisation; condition; incrémentation)
{
// instructions à exécuter dans la boucle

}
?>
3) Boucle "do while"....
Syntaxe
<?php
do{
// instructions à exécuter dans la boucle
} while (Condition) ;

?>

NB : Si la Condition est évaluée à TRUE, alors on reste dans la Boucle. Mais dès que la condition
évaluée est à false, on sort de la boucle.

Exercice d’application

1) Ecrire un programme qui permet la saisie d’un nombre entier positif puis affiche dans
une table HTML, la table de multiplication de ce nombre.
2) Ecrire un programme qui permet la saisie d’un nombre entier positif puis affiche dans
un span si le nombre est premier ou pas.

23
M.Wane

Exercice 7 :
Ecrire un programme qui permet la saisie d’un nombre entier positif puis affiche
dans une table HTML, toutes les tables de multiplication de 1 à ce nombre.

Exercice 8 :
Ecrire un programme qui permet la saisie d’un nombre entier positif puis affiche
dans tous les nombres premiers entre 1 et ce nombre dans des ul li.

Exercice 9:
Ecrire un programme qui permet la saisie d’un nombre entier positif puis affiche
dans un input text le factoriel de ce nombre.

Exercice 10:
Ecrire un programme qui permet la saisie deux nombres entier positifs puis affiche
dans un input text la puissance.

Exercice 11: Ecrire un programme qui saisit un mois et une année puis détermine
et affiche le nombre de jours de ce mois dans cette année

24
M.Wane

Cours : 2

Objectifs

 Fonctions
 Tableaux
 Chaines
 Dates
 Inclusion des Pages

III.8) Les Fonctions

Une fonction est ce que l'on peut appeler un sous-programme, une procédure. On distingue
deux types de fonctions : les "fonctions intégrées" ou "built-in" qui sont incluses par défaut
avec les distributions de PHP comme print, echo et les fonctions définies par le
programmeur, dites aussi "fonctions utilisateur".

Les fonctions ont plusieurs buts:

 Eclaircir le code en regroupant certaines fonctionnalités d'un programme qui se


répètent dans une même fonction.
 Pouvoir créer des fonctions génériques qui pourront être utilisées dans d'autres
programmes, ce qui évite de répéter pour chaque projet le même code
 Possibilité d'évolution du code plus facile dans la mesure où lorsque vous
modifiez le contenu d'une fonction, les répercussions sont effectuées sur
l'ensemble du programme sans que vous ayez à le modifier dans la plupart des
cas (sauf si vous rajoutez des paramètres etc).

III.8.1) Syntaxe de déclaration


Une fonction se déclare de la manière suivante :
<?php

function nom_fonction ($params1, $params2, $params3, ... , $paramsN)


{
// code de la fonction

return ($une_variable) // facultatif


}

?>

 L'instruction function qui déclare une fonction.


 Le nom de la fonction nom_fonction.
 (...) La liste des paramètres séparés par une virgule, les arguments sont facultatifs, tout
dépend du but de votre fonction.
 Une instruction return facultative qui permet de renvoyer une variable.

25
M.Wane

Exemple :
1) Une fonction qui reçoit deux entiers en paramètres puis affiche la somme

2) Une fonction qui reçoit un nombre puis détermine et affiche si le nombre


est paire ou pas
TAF
Reprendre les exercices de 7 à 11 avec le concept de fonction
III.9) Les Tableaux

Un tableau ou array est une variable contenant plusieurs valeurs. En PHP, les
variables étant faiblement typées, les tableaux sont très simples à manipuler.il existe
deux type de tableau en PHP :
 Les Tableaux d’entiers ou numériques sont des tableaux dont les indices ou
clés sont entiers.
 Les Tableaux associatifs sont des tableaux dont les indices ou clés sont des
chaines.

On accède au tableau en utilisant $nomTableau ["indice"]
Ce qui se situe entre les crochets est appelé "index" ou encore "clef" de l'élément
du tableau.
NB :
Un même index est unique dans un tableau.
III.9.1) Les Tableaux Numériques
Exemple :
a) Affectation d’un élément a un Tableau
b) La fonction print_r($nomTableau) est utilisé pour afficher un tableau

26
M.Wane

c) Ajout de Cases à un Tableau vide ou existant

Remarque :
Dans un tableau Si une indice n’est pas spécifiée (comme ci-dessus) alors les indices seront
des valeurs numériques successives.
On peut voir ici que le premier élément d'un tableau prend l'index zéro, ce qui est tout à fait
habituel dans les langages de programmation.

27
M.Wane

III.9.2) Les Tableaux Associatifs

NB : Les super globales sont des Tableaux associatifs

III.9.3) Le Parcours des Tableaux


Un tableau peut être parcouru à l’ aide des boucles :
 "for"
 Boucle "while"
 Boucle "do while"....

Mais dans ce cas on utilisera la fonction count ($Nomtableau) qui retourne


le nombre d’éléments du Tableaux.

NB : On peut aussi utiliser la boucle foreach () pour parcourir un


tableau .Cependant cette boucle ne permet pas de faire une modification
des éléments du Tableau.

28
M.Wane

Syntaxe:

foreach ($nomtableau as $index=>$element{

//Traitement

Exemple

Exercice 13

Soit le Tableau d’entiers suivants : array (1,2, 1, 15, 6, 7, 19, 2, 5, 100, 101,10 ,75) ;

Ecrire les fonctions suivantes :

1. Une fonction nommée initialise () qui permet d’initialiser le tableau


2. Une fonction nommée printTab ($tab) qui affiche les valeurs de ce Tableau
3. Une fonction nommée printNbrePaires ($tab) qui affiche les valeurs paires de ce
Tableau suivant le format cle =>valeur
4. Une fonction nommée transfertNbrePremiers ($tab) qui transfert toutes les valeurs
premiers dans un tableau $tab1 puis affiche les valeurs de ce tableaux.
5. Une fonction nommée transfertNbreImpairs ($tab) qui transfert toutes les valeurs
impaire dans un tableau $tab2 puis affiche les valeurs de ce tableaux.
Le $tab2 ne contient pas de doublons.

29
M.Wane

Exercice 13

Soit le Formulaire ci-dessous :

Ecrire les fonctions suivantes :

1) Une fonction valideForm() qui permet de valider ce formulaire après la saisie


Règles De validation :
 Tous les champs sont obligatoires
 Le login est alphanumérique, on utilisera les expressions régulières
 L’email est valide
2) Une fonction printForm() qui permet d’afficher les valeurs saisies après validation
dans une table HTML

30
M.Wane

NB : On utilisera dans cette Exercice :

 CSS : CSS3, Bootstrap et Flexbox


 PHP : Les Tableaux $_POST,$_GET,$_SESSION,$_GLOBAL et les
fonctions

III.9.4) Les Fonctions utiles


Veillez visiter ce Lien pour les fonctions utiles des tableaux
III.10) Chaines et Date
III.10.1) Chaines
Veillez visiter ce Lien pour les fonctions utiles des chaines
III.10.2) Dates
Veillez visiter ce Lien pour La fonction Date

III.10) Projet 1 : Gestion des Comptes d’un Espace Membre

Description du Projet:
je vous propose dans ce Projet de découvrir comment créer un système de compte
utilisateur en PHP.
Nous allons donc apprendre à créer :

• Une partie inscription

31
M.Wane

• Une partie connexion / déconnexion

• Une option rappel du mot de passe.

• Une partie réservé aux membres avec les possibilités de :

- changer son mot de passe

Outils qui seront utilisés dans ce Projet


CSS: -Bootstrap 4 - Flex box - CSS 3

PHP: Variables, Tableaux, Fonctions, chaines, cookies, Fonctions Utiles et inclusions de pages

32