PHP (PHP Hypertext Preprocessor)

Auteur: Mohamed CHINY Durée necessaire pour le cours de PHP (PHP Hypertext Preprocessor) Niveau recommandé pour le cours de PHP (PHP Hypertext Preprocessor) Supports vidéo non disponibles pour ce cours Exercices de renforcement disponibles pour ce cours Quiz disponible pour ce cours

Page 4: Les bases du PHP

Toutes les pages

Généralités

Comme je l'ai précisé au début de ce cours, nous allons d'abord voir la syntaxe de base du langage PHP en utilisant son aspect procédural (comme si on programmait en langage C). Un cours de PHP Orienté Objet sera vu à part.

Tout d'abord, sachez qu'à partir de sa version 4, PHP est un langage compilé, c'est à dire que le code source est d'abord traduit en langage machine puis exécuté. Contrairement aux langages interprétés comme Javascript, une fois une erreur (*) est présente dans le code PHP, celui ci sera condamné en entier. Par conséquent, aucun code de la page ne sera exécuté qu'il soit PHP, HTML ou autre.

(*) Il existe plusieurs types d'erreurs en PHP. Certains bloquent l’exécution du code et d'autres se contentent de notifier leur présence tout en permettant au code de poursuivre son exécution. Nous aurons l'occasion de voir les types d'erreurs en PHP plus loin dans ce cours.

Les commentaires

En PHP on peut intégrer des commentaires qui seront ignorés lors de l’exécution du script par le serveur. Comme pour Javascript (ou pour le langage C) les commentaires en PHP peuvent avoir deux formes:
  • Commentaire de fin de ligne: il s'agit d'un commentaire qui s'étend jusqu'à la fin de la ligne à partir du symbole double slash (//).
  • Commentaire sur plusieurs lignes: il s'agit d'un bloc qui peut contenir plusieurs lignes comprises entre les symboles /* et */.

Exemple:
<?php
   // Commentaire de fin de ligne
   /*    
      Bloc entier
      vu comme un
      commentaire    
   */
?>

Variables PHP

Comme pour les autres langages de programmation, en PHP les variables servent à stocker des valeurs qui peuvent changer au cours du programme. A l'instar de Javascript, nous n'avons pas besoin de déclarer le type de la variable avant de s'en servir et on peut lui affecter des valeurs de types différents tout au long du programme sans recourir au CAST.

En PHP, les noms de variables sont préfixées par le symbole dollar ($) et commencent par une lettre minuscule, majuscule ou le cratère souligné (_). Cependant, ils peuvent contenir des chiffres au milieu ou à la fin. Les espaces ne sont pas autorisés.

Exemple:
<?php
   $a=10;   // Juste
   $_a9=true;   // Juste
   $9a="Bonjour";   // Faux (le chiffre ne doit pas figurer au début)
   $a b=5.3;      // Faux (le nom de la variable ne doit pas contenir d'espaces)
?>

Variables scalaires

En PHP, il existe des variables scalaires et des variables tableau (que l'on va traiter plus loin dans ce cours). Le variables scalaires peuvent être:
  • Des nombres entiers (nombres sans virgule positifs ou négatifs).
  • Des nombres décimaux (de type double).
  • Des chaines de caractères (des suites de caractères quelconques).
  • Des booléens (qui peuvent avoir les valeurs true ou false).

Si une variable appelée dans le script existe déjà et a déjà reçu une valeur, celle ci sera utilisée. Sinon alors le moteur PHP lui affecte la valeur 0 par défaut.

Exemple:
<?php
   $a=5;
   $b=$a+1;   // $b vaut 6
   $d=$c+1;   // $d vaut 1
?>

Assignation par références

L'assignation par référence permet à deux variables de pointer sur le même contenu. Cette assignation est assurée par une simple affectation avec le paramètre &.
$a=&$b;
Dans ce cas, les variables $a et $b pointent sur le même contenu. Autrement dit, si, après cette assignation, on change la valeur de $a alors $b changera aussi et aura la même valeur que $a et inversement.

Les constantes PHP

Les constantes servent aussi à stocker des valeurs dans un programme, mais à l'inverse des variables, leurs valeurs ne changent pas.

Fonction define()

Pour définir un constante on utilise la fonction define(cte,val). cte représente l'identifiant de la constante à définir et val sa valeur.

Exemple:
<?php
   define(cte,"Bonjour");
   echo cte; // Affiche Bonjour
   define(cte,"Bonsoir");
   echo cte; // Affiche Bonjour
?>
La fonction echo permet d'afficher une chaîne de caractères sur le navigateur. On va la voir en détail plus loin.

Comme vous l'avez constaté, même si on a redéfini une nouvelle valeur (Bonsoir) pour la constante cte, c'est la première valeur (Bonjour) qui est conservée. C'est normal car une constante ne change pas au cours du programme.
La tentative de redéfinition d'une constante ne génère pas d'erreur. Elle sera simplement ignorée par le compilateur.

Les opérateurs

Les opérateurs sont des symboles qui permettent de faire des opérations sur les variables. Les opérateurs sont souvent les mêmes dans la plupart des langages de programmation et ils sont représentés par des symboles similaires dans la plupart des cas.

En PHP on distingue 5 familles d'opérateurs:
  • Opérateurs arithmétiques.
  • Opérateurs d'incrémentation.
  • Opérateurs assignement.
  • Opérateurs de comparaison.
  • Opérateurs logiques.

Opérateurs arithmétiques

Ce sont des opérateurs qui effectuent des calculs mathématiques classiques à savoir: l'addition (+), la soustraction (-), la multiplication (*), la division (/) et le modulo (qui signifie le reste de la division)(%).

Exemple:
$a=10;
$b=20;
$c=$a+$b; // $c vaut 30
$d=$a-$b; // $d vaut -10
$e=$a*$b; // $e vaut 200
$f=$a/$b; // $f vaut 0.5
$g=$a%$b; // $g vaut 10

Opérateurs d'incrémentation

Ce sont des opérateurs qui permettent de modifier la valeurs d'une variable en l'augmentant ou la diminuant de 1. Deux opérateurs sont utilisés: incrémentation (++) et décrémentation (--).
Exemple:
$a=10;
$a++; // $a vaut donc 11
$a--; // $a vaut à nouveau 10
Parfois on préfère regrouper les opérations d'incrémentation dans la troisième famille qui constitue les opérateurs d'assignement.

Opérateurs d'assignement

Ce sont les opérateurs qui permettent d'affecter une valeur à une variable directement ou à travers une opération (comme l'incrémentation ou la décrémentation). Les opérateurs disponibles pour cette famille sont: l'affectation directe (=), l'affectation avec addition (+=), l’affectation avec soustraction (-=), l'affectation avec multiplication (*=), l'affectation avec division (/=) et l'affectation avec modulo (%=).

Exemple:
$a=10;
$b=$a; // $b vaut 10
$a+=5; // $a vaut 15
$a-=3; // $a devient 12
On peut écrire l'instruction $a++ comme ceci: $a+=1 ou encore: $a=$a+1.

Opérateurs de comparaison

Ce sont les opérateurs qui testent une condition si elle est vraie ou fausse. Les opérateurs disponibles sont: égal (==), strictement inférieur (<), inférieur ou égal (<=), strictement supérieur (>), supérieur ou égal (>=), différent (!=), identique (===), non identique (!==).

Exemple:
$a=10;
if($a%2==0)
   $res="Nombre pair";
La structure de contrôle if sera vue en détail par la suite, mais sachez que pour cet exemple, elle permet de vérifier si le reste de la division de la variable $a par 2 est égal à 0, ce qui signifierait que $a est pair.
L'opérateur identique (===) vérifie si deux variables sont égales et de même type. Non identique (!==) vérifie si ce n'est pas le cas.

Opérateurs logiques

Ce sont des opérateurs qui regroupent logiquement plusieurs conditions. Les trois opérateurs utilisés sont: ET logique (&&), OU logique (||) et NON logique (!).

Exemple:
$a=10;
$b=5;
if($a%2==0 || $b%2==0)
   $res="Le résultat de la multiplication des deux nombres sera pair";
On vérifie si l'une des conditions $a est pair ou $b est pair est vraie.