Le langage PHP (PHP: Hypertext Preprocessor) est un langage de script côté serveur, principalement utilisé pour le développement web dynamique.
Contrairement à JavaScript qui s’exécute dans le navigateur, PHP s’exécute sur le serveur et génère du HTML envoyé au client.
Convention
PHP utilise principalement le Camel case pour les variables et fonctions.
Par exemple, on écrira $maVariable.
Les opérations comportent généralement un espace :
php
1
2
3
<?phpecho2+1;?>
Points-virgules et accolades
PHP utilise des accolades {} pour définir les blocs et nécessite un point-virgule; à la fin de chaque instruction.
Toutes les variables commencent par $.
<?php$age=80;$nom="Jean";$etudiant=true;$animaux=["chien","chat","poisson","chameau"];echo$age."\n";echo$nom."\n";print_r($animaux);echo"Le type de 'age' est ".gettype($age).", celui de 'nom' est ".gettype($nom)." et le type de 'animaux' est ".gettype($animaux)."\n";?>
À savoir
Le type du tableau animaux est un array.
PHP est un langage dit “orienté objet”, ce qui signifie qu’il est possible d’encapsuler des concepts en objets.
<?phpclassVoiture{public$marque;public$nom;publicfunction__construct($marque,$nom){$this->marque=$marque;/*
le `$this->marque` définit l'attribut de la classe, le `$marque` est le paramètre de la fonction
,*/$this->nom=$nom;}publicfunctiondonneInfo(){echo"La voiture {$this->nom} est de marque {$this->marque}\n";}}// On instancie 2 voitures différentes
$voiture1=newVoiture("Toyota","Corolla");$voiture2=newVoiture("Renault","Espace");$voiture1->donneInfo();$voiture2->donneInfo();?>
PHP est un langage à typage dynamique, mais depuis PHP 7, il est possible de déclarer des types stricts pour les paramètres et valeurs de retour.
<?php$age=20;var_dump(is_string($age));// bool(false)
echo"Changement de la variable 'age' en string\n";$age="tomate";echo$age."\n";var_dump(is_string($age));// bool(true)
?>
À savoir
Même si utiliser == semble fonctionner, il est recommandé de ne pas l’utiliser.
Privilégiez === pour la vérification stricte des types (valeur ET type).
<!DOCTYPE html><htmllang="fr"><head><metacharset="UTF-8"/><linkhref="style.css"rel="stylesheet"/><title>Ex 1</title></head><body><h1>Ex 1</h1><pid="texte_a_changer"></p></body><script>// PHP peut générer du JavaScript
lettexte=document.getElementById("texte_a_changer");texte.textContent="<?php echo 'Hello World depuis PHP !'; ?>";</script></html>
<?phpfunctionmaFonction($age){if(!is_numeric($age)){echo"Veuillez rentrer un nombre.\n";$age=readline("Quel est votre âge ? ");returnmaFonction($age);/*
Ici on return la même fonction si la condition `!is_numeric` (n'est pas un nombre) est vraie, c'est la récursivité.
C'est utilisé pour ce genre de code demandant un input à l'utilisateur pour éviter les erreurs d'entrées.
C'est aussi utile pour les PGCD et autres formules mathématiques.
,*/}$age=intval($age);$age=$age+1;echo"Vous avez $age ans\n";}$age_utilisateur=readline("Quel est votre âge ? ");maFonction($age_utilisateur);?>
Typage strict (PHP 7+)
Depuis PHP 7, il est possible de déclarer des types stricts :
<?php$animaux=["chien","chat","poisson","chameau"];// Parcourir les valeurs
foreach($animauxas$animal){echo$animal."\n";}// Parcourir avec index et valeur
foreach($animauxas$index=>$animal){echo"$index: $animal\n";}?>
En PHP, le switch permet de comparer une expression à plusieurs valeurs possibles.
php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php$t=readline("Saisir un caractère : ");switch($t){case"a":case"e":case"i":case"o":case"u":case"y":echo"C'est une voyelle\n";break;default:echo"Pas une voyelle\n";break;}?>
Décomposition
switch($expression) évalue l’$expression
Chaque case compare la valeur de l’expression
break empêche l’exécution des cases suivantes
default est exécuté si aucune valeur ne correspond