Vous êtes sur la page 1sur 41

PHP

ISINFO 2022
Plan
1- Application web
2- Base de langage PHP
3- Concept POO
4- Modules avances
5- Frameworks PHP
Application web
Une application web métier est une application hébergée sur un
serveur distant, accessible depuis le réseau Internet via un navigateur.
Se substituant au progiciel (logiciel métier) installé sur chaque poste
informatique au sein de la société, une telle application métier peut
concerner tous les usages professionnels.
Qu’il s’agisse de tableaux de bord, de processus de réservation en ligne,
de plateformes collaboratives, d’interfaces métier intuitives ou
d’extranets élaborés, les moyens mis à la disposition désormais par les
navigateurs permettent de proposer des services de plus en plus
performants. 
2- Base de langage PHP

• Généralité
• Structure alternative
• Structure répétitives
Généralité

Insertion de code PHP


Il existe quatre mode d'insertion de code PHP dans du code HTML :
• Mode standard: <?php echo "bonjour"; ?>.  C'est le mode à utiliser de préférence. Il
est compatible (x)html. Le code PHP (affichage du mot bonjour sur l'exemple) est
entouré des balises < ?php et ?>.
• Mode script: <script language="php"> echo "bonjour" ; </script>.  Ce mode n'est pas
reconnu par certains editeurs
• Mode asp: <% echo "bonjour" ; %>. Le style asp n'est pas activé par défaut. Pour
l'activer il faut utiliser l'option −−enable−asp−tags lors de la compilation de php ou
mettre la directive asp_tags à On dans le fichier de configuration de php.
• Mode court: <? echo "bonjour"; ?>  Il n'est actif que si la directive short_open_tag
dans le fichier de configuration de php (php.ini) est à On ou si php a été compilé avec
l'option --enable-short-tags.
Pour des problèmes de compatibilité il est conseillé d'utiliser le mode standard qui
garantit la portabilité de vos scripts PHP.
<html>
    <head>
                <title>Hello</title>
         </head>
<body>
<?php
echo "Hello word";
?>
</body>
</html>
Remarque : La balise fermante en fin de fichier est optionnelle.
Deux instructions php sont séparées par un point-virgule. L'instruction
qui précède une balise fermante php ne nécessite pas de point-virgule.
Les commentaires
Un commentaire un texte explicatif destiné aux lecteurs du code
source. Il n'a aucune incidence sur le résultat du script. Dans un bloc
php on considère comme commentaire :
les caractères entre les symboles /* et */ sur plusieurs lignes
les caractères après les symboles // ou # sur une seule ligne.
Les variables
En PHP les variables sont représentées par le signe dollar ($) suivi du nom de la variable. Le
nom d'une variable définie par le programmeur doit commencer par une lettre ou le
caractère souligné (_).
Le nom d'un variable peut contenir un ensemble de lettres, chiffres et caractère soulignés.
Habituellement, le type d'une variable n'est pas déclaré par le programmeur.
Il est décidé au moment de l'exécution par PHP en fonction du contexte dans lequel la
variable est utilisée. PHP supporte 8 types basiques répartis en 3 grands groupes:
• Les types scalaires (les types booléen, numérique (entier, décimal) et chaîne de
caractères),
• les types composés (les types tableau et classe),
• les types spéciaux (les types ressources et null).
• Le types numériques
• Les types entier et décimal (nombre à virgule) sont les deux types numériques disponibles en PHP.
• Le type entier permet la manipulation de valeurs numériques entières. Les entiers sont par défaut spécifiés en notation décimale
(base 10). Les notations octale (faire précédez le nombre d'un zéro) et hexadécimale (faire précédez le nombre de 0x) sont également
disponibles.
• Exemple 1
• <?php
• $age=25;
• $numero=1234;
• $octus=012; //entier en base 8
• $hexus=0xA; //entier en base 16
• echo "age=$age,num=$numero, octus=$octus, hexus=$hexus";
• ?>
• Le type décimal permet la manipulation de valeurs numériques décimales. Une notation classique et une notation exponentielle sont
disponibles pour representer les valeurs décimales.
• Exemple 2
• <?php
• $longueur=253.32; //notation classique
• $largeur=25.332e1;  //notation exponentielle
• $hauteur=25332E-2; //notation exponentielle
• echo "long=$largeur,largeur=$largeur, hauteur=$hauteur";
• ?>
Les opérateurs arithmétiques
Le tableau suivant liste les opérateurs arithmétiques disponibles.

Opérateur Exemple Description

négation -$a Opérateur unaire négation

addition $a + $b Opérateur binaire addition

soustraction $a -$b Opérateur binaire soustraction

multiplication $a * $b Opérateur binaire multiplication

division $a / $b Opérateur binaire division

modulo $a % $b Opérateur binaire reste division


Les opérateurs d'assignation
Ils permettent d'assigner à une variable une valeur. L'opérateur d'assignation la plus simple est l'affectation (=). Il permet
d'affecter à une variable* la valeur d'une expression.
Exemple 3
<?php
$longueur=25;
$largeur=20;
$perimetre=($longueur+$largeur)*2;
echo "Le perimetre est de $perimetre metres";
?>
Des opérateurs d'assignation plus complexe existent. Ces opérateurs combinent entre autres les opérateurs arithmétiques
classiques (-,+,*,/, %) avec l'opérateur d'assignation simple.
Les opérateurs d'assignation complexe sont à utiliser lorsque l'expression à assigner à une variable utilise elle même la valeur
initiale de la variable.
Exemple 4
<?php
$longueur=25;
$largeur=20;
$largeur*=$longueur;
echo "La surface est de $largeur metre carree";
?>
Assignation par valeur et par référence
Par défaut PHP assigne les variables par valeur (on a deux variables avec la même valeur). Pour assigner une variable par
référence (on a une variable avec deux noms différents) il faut la faire précéder du caractère &.
Exemple 5
<?php
$longueur=25;
$largeur=$longueur;
$longueur=27;
echo "La largeur est $largeur et la longueur est $longueur";
$longueur=25;
$largeur=&$longueur;
$longueur=27;
echo "La largeur est $largeur et la longueur est $longueur";
?>
Les opérateurs de comparaison
Les opérateurs de comparaison permettent de comparer deux valeurs. Le résultat d'une comparaison est de type
booléen. Le tableau suivant présente les différents opérateurs de comparaison.

Opérateur Exemple Résultat Description

== "10"==10 true égalité si même valeur sans tenir


compte du type

=== "10"===10 false égalité si types et valeurs identiques

<>, != "10"!=10 true différent sans tenir compte du type

!== "10"!==10 false différent si valeur ou type différent

>, >= 10 > 12 false supérieur et supérieur ou égal.

<, <= 10 <= 12 true inférieur et inférieur ou égal


Les opérateurs d'incrémentation et de décrémentation
Il est possible d'utiliser en PHP les opérateurs d'incrémentation (++) et de
décrémentation(--).
Exemple 6
<?php
$longueur=25;
$largeur=$longueur++;
echo "La largeur est $largeur et la longueur est $longueur";
$largueur--;
$largeur=++$longueur;
echo "La largeur est $largeur et la longueur est $longueur";
?>
Les opérateurs bit à bit
Les opérateurs sur les bits sont utilisés pour manipuler les bits d'un entier. Le tableau suivant liste les
opérateurs sur les bits disponibles avec $x=2 et $y=3.

Opérateur Exemple Résultat Description

& $x & $y 2 bit à 1 dans $x et dans $y sont à 1 dans le résultat

| $x | $y 3 bit à 1 dans $x ou dans $y sont à 1 dans le résultat

^ $x ^ $y 1 bit à 1 dans $x ou dans $y mais pas dans les deux


sont à 1 dans le résultat

~ ~$x -3 bit à zéro dans $x sont à 1 dans le résultat

<< $x << $y 16 décalage de $y bits de $x  vers la gauche en


complétant par des zéros.

>> $x >> $y 0 décalage de $y bits de $x  vers la droite en


complétant par des zéros.
Les fonctions mathématiques
PHP dispose de nombreuses fonctions mathématiques qui manipulent et produisent des nombres entiers et
décimaux. Le tableau suivant en liste quelques unes avec des exemples d'utilisation.

Fonctions Exemple Résultat Description

abs abs(-5) 5 valeur absolue d’un nombre

ceil ceil(2.4) 3 entier supérieur


floor floor(2.6) 2 entier inférieur

fmod fmod(7.2,2) 1.2 reste decimal d’une division à résultat


entier
max, min max(10,12.3,1) 12.3 plus grande valeur (utilisation possible
d’un tableau).

pow pow(10,2) 100 puissance d’un nombre

rand rand(1,9) 3 valeur aléatoire entre un min (0) et un


max optionnels

round round(1.3481,2) 1.35 valeur arrondie avec une précision


optionnelle
sqrt sqrt(9) 3 racine carrée
Le type chaîne de caractères (string)
Le type « chaîne de caractères » permet de manipuler les suites de caractères. Contrairement à d'autres
langages le nombre de caractères d'une chaîne en PHP n'est pas fixé. PHP propose quatre syntaxes de
manipulation des chaînes de caractères : guillemet double, guillemet simple, heredoc et nowdoc.
La syntaxe guillemet double
La chaîne de caractères est entourée entre des guillemets double.
Exemple 7
<?php
$nom= "Diop";
$prenom="Moussa" ;
echo "l'etudiant $prenom $nom";
?>
Remarques
1.Pour utiliser des guillemets doubles à l'intérieur d'une chaîne entre guillemets doubles il faut la faire précéder du caractère
anti-slash (\).
2.Les séquences suivantes peuvent être utilisées à l'intérieur d'une chaîne entre guillemets doubles : \n, \r, \t, \v, \f, \
$, \", \\, ...
La syntaxe guillemet simple
La chaîne de caractères est entourée entre des guillemets simple.
Exemple 8
<?php
$nom= 'Diop';
$prenom='Moussa';
echo 'l\'Etudiant $prenom $nom'; //les variables ne seront pas remplacées
echo 'l\'Etudiant Moussa DIOP';
?>
Remarques
3.Les variables ne sont pas remplacées par leurs valeurs dans une chaîne entre guillemets simples.
4.Pour utiliser des guillemets simples à l'intérieur d'une chaîne entre guillemets simples il faut la faire précéder du caractère
anti-slash (\).
La syntaxe heredoc
La chaine de caractères débute par <<< suivi d'un identifiant similaire aux noms de variables et choisi par le
programmeur. Le même identifiant sur une ligne signale la fin de la chaine de caratères.
Exemple 9
<?php
$id=1 ;
$nom= "Diop";
$prenom="Moussa" ;
$profilEtudiant= <<<profil
id : $id
Nom : $nom
Prenom=$prenom
profil
echo "profilEtudiant";
?>
Remarques
1.Les chaînes heredoc se comporte de manières simillaires aux chaines entre guillemets doubles sauf que le caractère
guillemet double n'a plus besoin d'être précédé par anti slash à l'intérieur de la chaîne.
2.La ligne contenant l'identifiant ne doit contenir aucun autre caractère hormis le point-virgule à la fin. L'identifiant de
fermeture doit occuper seul une nouvelle ligne.
La syntaxe nowdoc
La syntaxe est similaire aux chaines heredoc avec l'identifiant de début entouré par des guillemets simples.
Exemple 10
<?php
$profilEtudiant= <<<'profil'
id : 1
Nom : N'diaye
Prenom=Moussa
profil;
echo "$profilEtudiant";
?>
Remarques
1.Les chaînes nowdoc se comporte de manières simillaires aux chaines entre guillemets simples sauf que le caractère
guillemet simple n'a plus besoin d'être précédé par anti slash à l'intérieur de la chaîne. Les variables ne sont donc pas
analysées lorsqu'elles sont à l'intérieur d'une chaîne nowdoc.
L'opérateur de concaténation
L'opérateur point (.) permet d'éffectuer la concaténation de deux chaines de caractères.
Exemple 11
<?php
$nom= "Diop";
$prenom="Moussa" ;
$nomComplet= $prenom . "  " . $nom ;
echo "NomComplet:" . $nomComplet;
?>
L'opérateur d'assignation
L'opérateur = permet d'assigner une chaîne de caractère et l'opérateur .= est l'opérateur d'assignation
complexe.
Exemple 12
<?php
$nom="Diop";
$prenom="Moussa" ;
$prenom.= "  " . $nom ;
echo "NomComplet:" . $prenom;
?>
Les fonctions sur les chaînes de caractères
PHP dispose de nombreuses fonctions pour la gestion et la manipulation de chaînes de caractères.
Le tableau suivant en liste quelques unes avec des exemples d'utilisation.

Fonctions Exemple Résultat Description


nl2br nl2br("M \n D") M <br  /> D insére un <br /> à chaque nouvelle ligne
strcmp strcmp ("Moussa","Moise") 12 compare 2 chaînes de caractères.
strlen strlen("Moussa") 6 retourne le nombre de caractère de la chaîne
strpos strpos("Moussa",’s’) 3 renvoie la position de la première occurrence
d’un caractère
strrev strrev("Moussa") assuoM inverse une chaîne
strtolower strolower("MoussaDiop") moussadiop convertit les majuscules en miniscules
strtoupper stroupper("Moussa") MOUSSA convertit les miniscules en majuscules
trim trim("   Moussa  ") Moussa Supprime les espaces en début et fin  de chaîne
echo, print echo  ("Bonjour") 1.35 Afficher une chaîne de caractères
ucfirst ucfirst("moussa") Moussa Transforme le premier caractère en majuscule
Le type booléen (bool ou boolean)
Le type booléen a deux valeurs notées par les constantes booléennes TRUE (vrai) et FALSE (faux). Les opérateurs
de comparaisons renvoient une valeur
booléenne. Ces mêmes opérateurs s'appliquent aux booléens avec TRUE > FALSE.

Opérateurs logiques
Le tableau suivant contient l'ensemble des opérateurs booléens sous la forme d'une table de vérité.
Les opérateurs && et and, || et or ont un comportement similaire mais n'ont pas la même priorité.

$x $y !$x $x && $y $x || $y $x xor $y


$x and $y $x or $y

TRUE TRUE FALSE TRUE TRUE FALSE

TRUE FALSE FALSE FALSE TRUE TRUE

FALSE TRUE TRUE FALSE TRUE TRUE

FALSE FALSE TRUE FALSE FALSE FALSE


Exemple 13
<?php
$id=1 ;
$age= 25;
$nom="Diop";
if(($age>21) and (strcmp($nom, "Diop")==0))
echo "Majeur et Diop";
if(!($age>21) and ((strcmp($nom, "Diop")==0) or ($id==1)))
echo "Mineur et Diop ou id=1";
?>
Remarques
1.Les valeurs suivantes sont entre autres considérées comme faux : false, 0, 0.0, la chaîne vide (""), "0",
tableau vide, NULL, les variables non définies.
Le type tableau (array)
Un tableau est une variable pouvant contenir plusieurs valeurs ordonnées. A chaque valeur d'un tableau
correspond une clé unique qui permet d'acceder à la zone mémoire où elle est stockée.
Une clé est soit un entier (tableau indexé), soit une chaîne de caractères (tableau associatif).
Une valeur est de type quelconque (entier, chaîne de caractères, tableau, ...).
Un tableau peut contenir à la fois des clés entières et chaîne de caractères
(nous pouvons parler de tableaux hybrides).
Création d'un tableau
Le mot clé array est généralement utilisé pour créer un tableau. L'insertion d'une valeur dans un tableau
qui n'existe pas à l'aide de la syntaxe dite « entre crochets » permet également  de créer un tableau.
Exemple 14
 
Les cas 1, 2, 3 sont identiques avec des clés entieres (0, 1, 2).
Le cas 4 utilise des clés chaîne de caractères.
Le cas 5 utilise des clés entieres et des clés chaîne de caractères.
Pour le cas 6 où nous ne spécifions pas de clé, PHP attribut la clé entière la plus élevé plus un.
Donc les clés entières pour le cas 6 sont 0, 5 et 6.
<?php //cas 1 <?php  //cas 2 <?php  //cas 3
$etudiant=array $etudiant=array(1,"Diop"  $etudiant[0]=1 ;
(0=>1, ,"Moussa") ; $etudiant[1]="Diop" ;
1=>"Diop", print_r($etudiant) ; $etudiant[2]="Moussa";
2=>"Moussa"); ?> print_r($etudiant) ;
print_r($etudiant) ; ?>
?>

<?php  //cas 4 <?php //cas 5 <?php  //cas 6


$etudiant=array $etudiant=array $etudiant[]=1 ;
('id'=>1, ('id'=>1, $etudiant[5]="Diop" ;
'nom'=>"Diop", 10=>"Diop", $etudiant[]="Moussa";
'prenom'=>"Moussa"); 'prenom'=>"Moussa"); print_r($etudiant) ;
print_r($etudiant) ; print_r($etudiant) ; ?>
?> ?>
Accès aux valeurs d'un tableau
La syntaxe entre crochets est utilisée pour accéder à une valeur d'un tableau.
Exemple 15

<?php //cas 1
$etu[0]=1 ;
$etu['nom']="Diop" ;
$val="prenom";
$etu[$val]="Moussa" ;
echo "id:" . $etu[0] . " nom: "  . $etu['nom'] . " prenom: " 
. $etu[$val] . "<br />";
echo "id: $etu[0] nom: {$etu['nom']} prenom :
{$etu[$val]} ";
?>
<?php //cas 2
$etus[0]= array('id'=>1,
'nom'=>"Diop",'prenom'=>"Moussa");
$etus[1]= array('id'=>2,
'nom'=>"Ba",'prenom'=>"Mamadou");
$etus[2]= array('id'=>3,
'nom'=>"Gueye",'prenom'=>"Fatou");
echo "id:" . $etus[0]['id'] . " nom: "  . $etus[0]['nom'] .
"<br />";
echo "id: {$etus[0]['id']}  nom: {$etus[0]['nom']} <br />";
?>
Noter la syntaxe entre accoladde de même que la concaténation de chaînes de caractères à utiliser pour plus de
lisibilité. Noter également que $val n'est pas entouré par des guillemets quand nous l'utilisons comme clé de type
chaîne de caractères. Dans le cas 2 la valeur du tableau etus est de type tableau. Cette syntaxe nous permet de
déclarer des tableaux de dimension n (n>1).
Remarques
1.Pour eviter toute confusion avec les constantes de même nom, la valeur d'une clé de type chaîne de caractère
doit être encadré par des guillemets.
Fonctions sur les tableaux
PHP dispose de nombreuses fonctions pour la gestion et la manipulation de tableaux.
Le tableau suivant en liste quelques unes avec des exemples d'utilisation.
Fonctions Exemple Description
count, sizeOf count($etus) renvoient le nombre d’élément d’un
tableau
in_array in_array('Moussa',$etu) vérifie si une valeur existe dans un tableau.
array_key_exist array_key_exist('nom',$etu) vérifie si une clé existe dans un tableau
sort, rsort sort($etu) trie alphanumérique d’un tableau
implode implode(' et ',$etu) renvoie les éléments du tableau joints par
la chaîne en argument
explode explode(';','1;Diop;Mouss') scinde une chaîne pour en faire un tableau
array_merge array_merge($etu,$etu1) fusionne plusieurs tableaux en un seul
Variables dynamiques
En PHP l'identifiant d'une variable peut varier. Pour cela l'identifiant est lui même la valeur d'une variable qui par définition
peut varier.
Exemple 16
<?php
$centre_universitaire="lambaye";
$$centre_universitaire ="2500 habitants"; // $lambaye="2500 habitants"
echo "$centre_universitaire ${$centre_universitaire}";
echo "$centre_universitaire $lambaye";
?>
Applications
1.Dans le repertoire séquence3 à la racine du documentRoot créer le fichier exemple16.php correspondant à l'utilisation des
variables dynamiques . Commentez le résultat obtenu.
Fonctions sur les variables
•empty($a) vérifie si $a est vide (chaîne vide, 0, 0.0, "0", NULL, FALSE, un tableau vide)
•get_defined_vars() renvoie l'ensemble des variables définies
•gettype($a) renvoie le type de la variable $a
•settype($a, "int") affecte à une variable un type (int sur l'exemple). Les opérateurs de cast comme en C peuvent également être
utilisés.
•is_bool, is_array, is_float ou is_double ou is_real, is_int ou is_integer, is_null, is_numeric, is_string, ... determine
respectivement si une variable est de type booléen, tableau, réel, entier, null, numérique ou chaîne de caractères.
•isset determine si une variable est définie et de valeur différente à null.
•var_dump($a) affiche les informations (valeur et type) d'une variable.
•print_r($a) affiche le contenu d'une variable
Exemple 17
<?php
$id=1 ;
$age= "25";
$prenom= "" ;
$nom="Diop";
echo gettype($id) ;
var_dump($age) ;
settype($age, "int") ;
var_dump(age) ;
if(isset($prenom))
echo "prenom defini" ;
if(empty($prenom))
echo "prenom est vide" ;?>
Les constantes
Une constante est un nom qui représente une valeur simple. Par définition la valeur d'une constante ne change pas durant
l'éxécution du script (sauf pour les constantes magiques). Le langage PHP utilise des constantes scalaires : booléenne (TRUE,
FALSE), entières (1,2, -1, ...), réelles (-1.2, 0.314E1,3.14, ...), chaine de caractères ("CECI est une chaîne de caractères", 'ceci
aussi', 'a').
Déclaration d’une constante
Le nom d'une constante comme pour les noms de variables commence par une lettre ou le caractère souligné suivi d'une
combinaison de lettres, chiffres ou soulignés. Par convention les caractères utilisés pour nommer une constante sont en
majuscule. Les mots clés define et const permettent de définir une constante. Le mot clé const doit toujours être utilisé dans
un contexte global.
Exemple 18
<?php
define("UNIVERSITE","Bambey"); //constante UNIVERSITE ayant pour valeur Bambey
const CENTRE='Diourbel'; //constante CENTRE ayant pour valeur Diourbel
$a=25;
if($a<34)
const RESPONSABLE='Kasse' ; //contexte local donc erreur...
?>
Acces à la valeur une constante
Le nom d'une constante est généralement utilisé pour accéder à sa valeur. Il est également possible d'utiliser la fonction
constant (à utiliser généralement si le nom de la constante n'est connu que durant l'exécution du script.).
Exemple 19
<?php
const CENTRE='Diourbel'; //constante CENTRE ayant pour valeur Diourbel
define("UNIVERSITE","Bambey"); //constante UNIVERSITE ayant pour valeur Bambey
define("ANNEE",10); //constante UNIVERSITE ayant pour valeur Bambey
$moncentre= "CENTRE";
echo UNIVERSITE;
echo constant($moncentre);
echo CENTRE ;
echo ANNEE;
?>
Constantes magiques
PHP fournit des constantes prédéfinies appelées constantes magiques.
Certaines constantes appartiennent à des extensions et ne seront disponibles que si  ces extensions sont
compilées avec PHP. Contrairement aux constantes classiques la valeur d'une constante magique peut changer
durant l'exécution d'un script selon le contexte d'utilisation (néanmoins il n'est pas possible de changer dans un
script la valeur d'une constante magique.). Il y a sept constantes magiques dont la valeur peut changer selon
le contexte :
Exemple 20
<?php
echo __LINE__; //affiche la ligne ou se trouve cette instruction
echo __LINE__; //affiche la ligne ou se trouve cette instruction donc +1
echo __FILE__;  //affiche le chemin du script.
?>
cv
Nom de la Valeur
constante
__LINE__ La ligne courante dans le fichier.
__FILE__ Le chemin complet et le nom du fichier courant.
__DIR__ Le dossier du fichier.
__FUNCTION__ Le nom de la fonction
__CLASS__ Le nom de la classe courante.
__METHOD__ Le nom de la méthode courante
__NAMESPACE__ Le nom de l'espace de noms courant
Fonctions pour les constantes
1.defined ('nomConstante'): vérifie si une constante a été définie avec define. Elle renvoie une valeur booléenne.
2.get_defined_constant() : retourne la liste des constantes avec leurs valeurs
3- Concept POO
Déclarer une classe

Classe voiture{
//contenu de la classe}
Attributs
Class voiture
4- Modules avances
5- Frameworks PHP

Vous aimerez peut-être aussi