Initiation au langage PHP
PHP est un langage de script côté serveur au même titre que ASP (réponse de MS) ou JSP
(solution web à partir du langage Java qui n'a rien à voir avec Javascript).
Côté serveur ? Côté serveur implique qu'un serveur analyse et décode le langage.
Le résultat de ce décodage est un fichier ne contenant que du code HTML là où étaient présentes les
instructions en PHP.
Côté serveur est à différencier de "côté client", auxquels appartiennent les langages Javascript et
ActionScript (Flash), où c'est le navigateur (= le client) qui se charge d'analyser et de décoder le
langage.
Un langage de script est à contrario d'un langage compilé vérifié lors de son exécution : ça n'est qu'au moment de l'exécuter que l'on peut observer s'il y a des bugs de type erreur de syntaxe.
Pour tester, il faut utiliser un serveur local : wampserver, easyphp, etc.
Ils recréent le fonctionnement d'un serveur tels qu'il y en a dans les centres d'hébergement.
Aucune instruction en PHP n'est présente dans le fichier transmis par le serveur au navigateur.
A quoi cela sert-il ?
Dynamiser son site.
Les langages de script côté serveur permettent de créer une page html ou de modifier son contenu pour la
rendre plus personnelle.
Lorsque vous vous loguez sur un site et que par la suite figure à un endroit votre nom, pseudo, avatar,
etc., il y a un langage de script derrière.
Pour que le serveur sache qu'une portion de code en PHP est présente dans la page demandée, il faut que
le code soit placé entre les balises <?php et ?>.
Ces deux balises définissent un bloc PHP entre elles, dans lequel on insère les
instructions.
Un bloc PHP peut contenir plusieurs instructions.
Les balises HTML présentent dans un bloc PHP sont obligatoirement entre quotes : elles
doivent être
considérées comme des chaînes de caractères.
<p><?php "ici mon instruction en php" ?></p>
Toute instruction PHP doit être placée entre les balises PHP.
Programmer
Deux liens d'intérêt : le premier explique et forme à l'utilisation des algorithmes ; le deuxième est une mine d'informations sur les fonctions présentes dans la librairie PHP. Le lien indiqué montre notamment les différentes fonctions sur les chaînes de caractères.
Fonction echo
Cette fonction permet d'inscrire un contenu sur la page.
echo "Bienvenue sur ma page";
Cette ligne est une instruction. En PHP, les instructions se terminent avec un ";".
Cette instruction affiche une chaîne de caractères. Pour distinguer une chaine de caractère, on préfixe
et suffixe celle-ci par des quotes doubles ou simples, mais toujours par paire.
Exercice n°1
Créez un fichier nommé "index.php" (extension ".php") et faîtes ce qui suit :
- insérez les balises attendues pour une page HTML normale (html, head, body)
- placez une balise paragraphe dans le corps de la page
- placez les balises ouvrante et fermante pour indiquer une portion en PHP (<?php .... ?>) à l'intérieure de la balise p
- entre les balises inscrivez echo "hello world"
- terminez l'instruction par un point virgule ;
- enregistrez le fichier en "index.php"
- lancez le logiciel qui fait office de serveur (easyPHP, mamp, etc.)
- accédez au dossier "local" ou "www" pour y placer votre fichier
- ouvrez un navigateur et allez à l'adresse locale (127.0.0.1 ou localhost)
- observez
- modifiez ce qui se trouve entre double quote
Commenter
Usage : renseigner, conserver, débugger.
Pour créer des commentaires, je n'ai besoin de commenter qu'une ligne ou j'ai besoin de commenter plusieurs lignes d'un coup :
// je commente sur une ligne : juste besoin d'indiquer quand cela commence /* je commente sur plusieurs lignes : nécessité de définir quand cela commence et quand cela se termine */
Je peux commenter plusieurs lignes de suite en utilisant le commentaire sur une ligne mais ça m'oblige à me mettre // au début de chaque ligne concernée. Peu pratique !
Exercice n°2
Recopiez le code suivant dans un fichier php et commentez le là où c'est nécessaire de la meilleure des manières :
<?php ceci est un commentaire sur une ligne echo "<strong>Un texte à afficher en gras</strong>"; ici encore un commentaire ceci est un commentaire sur plusieurs lignes ceci est la 2ème ligne du commentaire sur plusieurs lignes echo "<br>Un autre texte à afficher"; encore un commentaire sur une ligne ?>
La page correctement commentée ne doit afficher que ce qui suit :
Un texte à afficher en gras
Un autre texte à afficher
Variables
Les variables permettent de stocker une information susceptible d'évoluer durant l'exécution du programme.
Une variable PHP est définie grâce au symbole $ qui précède les caractères qui
constituent son nom : $nom_de_variable
Le nom de la variable :
- doit commencer par une lettre ou le caractère underscore ( _ )
- ne peut pas commencer par un chiffre
- doit contenir une ou plusieurs lettres, un ou plusieurs chiffres et/ou un ou plusieurs underscores
- ne doit contenir aucun espace
- est sensible à la casse (minuscule / majuscule) : $nom_de_variable et $NOM_de_variable sont 2 variables différenciées
- doit eviter de contenir des caractères accentués, source de problème avec l'encodage du fichier ($étape -> $etape)
Le nom d'une variable doit être défini de manière à aider à la compréhension des instructions / du programme : $compteur, $ville.
Il existe 2 grandes conventions de notation : soit $code_postal, soit $codePostal.
Exercice n°3
Parmi les propositions suivantes de nom de variables lesquelles sont incorrectes et pourquoi :
- $toto
- $_
- $num-telephone
- $villeDu57
- $3eme_session
- $_support
Type de variable
Le contenu d'une variable (sa valeur) peut être de différents types :
- types scalaires
- type booléen (bool) : définit ce qui est "vrai" ou "faux" (true / false)
- type entier (integer) : les nombres entiers
- type décimal (float ou double) : les nombres décimaux ; utilisation du point pour la partie décimale (19.99)
- type chaîne de caractères (string): tout ce qui est assimilé à du texte
- types composés
- type tableau (array) : organisation structurée de données
- type objet (object)
- types spéciaux
- type ressource (resource): des accès à des éléments externes (fichier texte, image, etc.)
- type NULL : correspond à (vide) ; cas d'une variable non définie
Affectation
L'affectation est l'instruction de base concernant une variable : on attribue un contenu/une valeur à notre variable. L'affectation se fait en utilisant l'opérateur =.
$prix_panier = 12.95;
En algorithme, une affectation est représentée ainsi :
ma_variable ma_valeur
ce qui a l'avantage d'être moins source d'erreur.
Une instruction de type affectation stocke dans la variable placée à gauche de l'opérateur '=' le résultat situé à droite de l'opérateur.
$prix_panier = 12.95; //correspond à $prix_panier 12.95
L'intérêt de créer une variable est de lui faire stocker une information que l'on souhaite conserver
dans le but de l'utiliser plus tard dans le cours du programme (un calcul, un affichage, etc.)
Par exemple, le nom d'un acheteur connecté sur un site e-commerce est stocké ainsi pour servir à divers
endroits du site ("Bienvenue Untel", "Si vous n'êtes pas Untel, merci de vous déconnecter", etc.)
L'affichage du contenu de la variable peut se faire en utilisant la fonction echo vue plus tôt :
echo $prix_panier;
Exercice n°4
Dans une page PHP
- créez un bloc PHP
- définissez une variable en lui choississant un nom
- affectez lui la valeur 8
- en dehors du bloc PHP, ajoutez une balise paragraphe
- à l'intérieur du paragraphe, ajoutez un autre bloc PHP
- à l'intérieur du bloc, placez l'instruction pour afficher le contenu de votre variable
Chaîne de caractères
Comme vu plus haut, le type chaîne de caractères se définit avec les simples ou les doubles quotes.
$ville = 'Metz'; $ville = "Metz"; $code_postal = "57000";
Les valeurs numériques sur lesquelles réaliser un calcul mathématique n'a aucun sens, doivent être considérées en type chaîne.
La chaîne de caractères est un élément très commun en programmation. Tout ce qui n'est pas un mot clé de PHP (comme echo), une variable, une constante (cela sera vu plus loin) ou une valeur numérique, doit être considéré comme une chaîne de caractères et dans ce cas, doit être encadré par des simples ou des doubles quotes.
Du code HTML manipulé dans un bloc PHP est donc obligatoirement une chaîne de caractères.
Exercice n°5
Dans une page PHP
- créez un bloc PHP
- créez une variable nommée prenom et affectez lui votre prénom
- créez une variable nommée nom et affectez lui votre nom
- faites un affichage du contenu des 2 variables
Si dans la chaîne de caractères figure le caractère utilisé pour encadrer la chaîne (simple ou double
quote),
cela va poser problème lors de l'execution du code.
Si j'écris ceci :
$citation = "Jules Verne : "On peut braver les lois humaines, mais non résister aux lois naturelles."";
le décodeur de PHP va considérer que la chaîne de caractères commence à la 1ère quote rouge et s'arrête à
la 1ère quote bleue et donc ce qui est après (On peut braver...) va entraîner un bug car ça n'est pas
une
instruction PHP valide.
La solution pour que tout les quotes qui servent à la citation ne soient pas considérés comme des quotes
délimitant la chaîne de caractères est donc d'échapper les quotes de la citation en
utilisant
le caractère \ (altgr + 8) devant le caractère.
$citation = "Jules Verne : \"On peut braver les lois humaines, mais non résister aux lois naturelles.\""; $saison = 'L\'automne est à nos portes';
Exercice n°6
Dans une page PHP
- créez un bloc PHP
- recopiez les instructions suivantes :
- echo Nous devons à Ann Landers cette phrase célèbre : On n'a jamais autant besoin de vacances que lorsqu'on en revient.
- echo Robert Orben a déclaré : Être en vacances, c'est n'avoir rien à faire et avoir toute la journée pour le faire.
- en plaçant des caractères d'échappement, faites en sorte que les phrases s'affichent correctement
Concaténation
La concaténation est probablement l'instruction la plus courante portant sur les chaînes. Il s'agit de "coller" 2 éléments de type chaîne (généralement) en utilisant le caractère point (appelé alors opérateur de concaténation) entre les éléments.
echo 'La ville de '.'Metz';
Considérez l'opérateur de concaténation comme un point de glue entre deux éléments.
Il est aussi possible de concaténer une chaîne avec une variable ou deux variables :
echo 'Le prix TTC est de '.$prix_panier_TTC;
Dans le cas de la présentation d'une page, la concaténation va permettre de mixer balises HTML et variables PHP :
echo '<p>Le prix TTC est de '.$prix_panier_TTC.'.</p>'; echo '<p>Bienvenue '.$prenom.' sur votre espace membre.</p>';
Observez sur le dernier exemple ce qui est chaîne de caractères et le reste.
Exercice n°7
Dans une page PHP
- créez un bloc PHP
- à l'intérieur du bloc définissez
- une variable contenant votre prénom
- une variable contenant Metz
- une variable contenant 57000
- en dehors du bloc PHP, insérez une balise paragraphe
- à l'intérieur de la balise
- affichez "Bonjour" suivi de votre prénom en utilisant la variable contenant votre prénom
- affichez "57000 Metz" en utilisant les variables contenant le code postal et la ville
Copie de contenu
Il est possible de copier le contenu d'une variable (sa valeur) dans une autre.
$toto = 10; $titi = 32; $titi = $toto; echo $titi; //affichera 10
Souvenez vous la représentation en algorithmique :
toto 10 titi 32 titi toto
Les valeurs numériques pouvant servir pour un calcul ne doivent pas être traitées comme des chaînes de caractères.
Si par la suite, $toto est modifié, la valeur de $titi elle, restera inchangée :
$toto = 21; echo $titi; //affichera 10 encore
Le contenu de $toto a été copié dans $titi.
Exercice n°8
1. Analysez les instructions suivantes et donnez pour chaque ligne, la valeur des variables :
$toto = 0; $titi = 0; $toto = 12; $titi = 3; $titi = $toto + 3; $toto = $titi - 6;
2. Comment faire pour échanger les valeurs de 2 variables ?
$var_a = 9; $var_b = 3;
($var_a doit contenir 3 et $var_b doit contenir 9 à la fin)
3. Analysez les instructions suivantes et donnez pour chaque ligne, la valeur des variables :
$livre = 12; $cahier = 7; $livre = $livre + $cahier; $cahier = $livre - $cahier; $livre = $livre - $cahier;
Opérateurs mathématiques
Les opérateurs mathématiques comprennent :
- + : addition
- - : soustraction
- * : multiplication
- / : division
- % : retourne le reste d'une division (25 divisé par 7 = 3 x 7 + 4 donc 25 % 7 = 4)
Les affectations impliquant une opération et une autre variable sont courantes :
$prix_panier_TTC = $prix_panier * 1.20;
Dans l'instruction ci-dessus, la valeur de $prix_panier majorée de la TVA est affectée à la variable
$prix_panier_TTC.
Il existe également une écriture simplifiée d'opération quand une instruction porte sur une seule et
même variable :
$compteur += 9; //équivalent à $compteur = $compteur + 9
Exercice n°9
Retranscrivez les opérations suivantes en instruction PHP en affectant le résultat obtenu à une variable :
- 12 plus 3
- 56 moins 39
- 12 fois 13
- 145 divisé par 7
- retrouvez le reste de la division précédente
Définissez une variable nommée "stock", affectez lui la valeur 1536 puis retranscrivez les opérations suivantes en affectant le résultat dans une variable "etat" :
- stock plus 35
- stock moins 176
- stock fois 5
- stock divisé par 8
- retrouvez le reste de la division précédente
Constante
Les constantes contiennent une valeur qui ne change pas durant l'exécution du programme. Néanmoins leur intérêt est de stocker une valeur qui peut être amenée à changer durant la vie du programme, comme la valeur de la TVA, le nom du site web ou du logiciel, l'email de contact technique, etc.
Pour définir une constante, on utilise la fonction define qui attend 2 paramètres :
- le nom de la constante sous la forme d'une chaîne de caractère (mêmes règles de nommage que pour une variable)
- la valeur de la constante de type entier, décimal ou chaîne de caractères (int, float ou string)
define('TVA_FR', 1.20); define('CAPITALE_AUSTRALIE', 'Canberra');
Il existe une autre méthode pour définir une constante : on utilise le mot clé const en préfixe durant la déclaration uniquement.
const TVA_FR = 1.20; const CAPITALE_AUSTRALIE = 'Canberra';
Pour utiliser le contenu d'une constante, il suffit d'inscrire son nom ; attention, le nom d'une
constante
n'est pas précèdé du symbole $ !
Toutes les opérations qui peuvent impliquer une variable (sauf celles qui changent sa valeur, comme
l'affectation)
peuvent se faire également avec une constante (opération arithmétique, concaténation, etc.)
$prix_panier_TTC = $prix_panier * TVA_FR;
Par convention, le nom des constantes est inscrit en majuscule afin de les distinguer facilement.
Exercice n°10
Dans une page PHP
- créez un bloc PHP
- définissez 2 constantes chacune pour :
- le nom de l'université avec comme valeur : Université de Lorraine
- les villes de l'université avec comme valeur : Metz et Nancy
- affichez les valeurs des constantes créées
- concatenez les constantes de manière à afficher :
Les villes de Metz et Nancy accueillent l'Université de Lorraine.
Opérateurs booléens ou opérateurs logiques
Les opérateurs logiques servent dans les tests de logique. Les tests de logique permettent d'orienter
l'exécution d'un programme vers une série d'instruction ou une autre : si l'utilisateur connecté est
une femme, il faut lui proposer les promotions sur des vêtements féminins, si c'est un homme, les
promotions sur ceux masculins.
Dans certains cas, plusieurs critères (~ tests logiques) sont nécéssaires pour décider d'une action
(~ série d'instructions) à réaliser :
- S'il fait plus de 17°C et qu'il y a le soleil, je vais en ville à pied;
- si Pierre me prête sa voiture OU que je peux en louer une, je vais au ski cet hiver.
Le ET et le OU inscrits ci-dessus sont des opérateurs de logique ; les tests de logique de part et d'autre de ces opérateurs vont avoir un résultat (vrai ou faux) et, en fonction de l'opérateur, la valeur de l'ensemble des tests va être déterminé (là aussi, soit vrai, soit faux).
Il existe 4 opérateurs servant aux opérations de tests :
- le "et commercial" & qui signifie "et"
- le pipe | (algr + 6) qui signifie "ou"
- "xor" qui signifie "ou bien"
- le point d'exclamation ! qui signifie "non" (dans le sens "n'est pas")
En PHP, ceux-ci sont doublés pour les instructions.
true && true; true || true;
Vrai et faux s'écrivent true et false en anglais.
Attention lors de la création d'une variable booléenne, il ne faut pas mettre les quotes au niveau de la valeur :
$est_en_php = "true"; //on crée une chaine de caractère $est_en_php = true; //on crée une variable booléenne
Avec ces opérateurs, il existe des règles ou tables dites de Boole, du nom du mathématicien les ayant déterminées.

Table du Et
Il faut que les 2 opérandes soient vrais pour que l'ensemble retourne vrai.
&& | vrai | faux |
---|---|---|
vrai | V | F |
faux | F | F |
S'il fait plus de 17°C et qu'il y a le soleil, je vais en ville à pied.
- il fait 21°C et le soleil est présent, alors ?
- il fait 15°C et le soleil est présent, alors ?
- il fait 21°C et il pleut, alors ?
- il fait 7°C et il pleut, alors ?
Table du Ou
Il faut que l'un des 2 opérandes soit vrai pour que l'ensemble retourne vrai.
|| | vrai | faux |
---|---|---|
vrai | V | V |
faux | V | F |
Si Pierre me prête sa voiture OU que je peux en louer une, je vais au ski cet hiver.
- Pierre me prête sa voiture et je peux en louer une, alors ?
- Pierre ne me prête pas sa voiture et je peux en louer une, alors ?
- Pierre me prête sa voiture et je ne peux pas en louer une, alors ?
- Pierre ne me prête pas sa voiture et je ne peux pas en louer une, alors ?
Table du XOR
Il faut que les opérandes soient de valeur opposée pour que l'ensemble retourne vrai.
XOR | vrai | faux |
---|---|---|
vrai | F | V |
faux | V | F |
Table du Non
Renvoie la valeur opposée de l'opérande.
! | vrai | faux |
---|---|---|
non | F | V |
Exercice n°11
Déterminez le résultat des tests suivants :
- true && true
- true && !false
- false || false
- !true
- true && false
- false && !false
- false || true
- true || (true || false)
- !false && (true || false)
- true && !(true || false)
Opérateurs de comparaison
Comme en mathématique, il est possible de comparer des valeurs entre elles avec :
- est égal à : $x == $y
- est strictement supérieur : $x > $y
- est supérieur ou égal : $x >= $y
- est strictement inférieur : $x < $y
- est inférieur ou égal : $x <= $y
- est différent de : $x != $y
La comparaison d'égalité nécessite un double égal (==).
Il n'est pas possible d'écrire 10 <= $x < 100 directement mais il faut décomposer en deux opérations :
($x >= 10) && ($x < 100);
Une erreur courante consiste à n'écrire qu'un seul symbole = pour réaliser une opération comparaison.
Cela revient à faire une affectation (=) et non une comparaison d'égalité (==).
$est_complet = false; ($est_complet = true); //renverra toujours true car l'affectation est valide et $est_complet prend la valeur true
au lieu de
$est_complet = false; ($est_complet == true); //dépendra de la valeur de $est_complet : ici ça renverra false du coup
La suite du cours : les structures avancées en PHP.