0% ont trouvé ce document utile (0 vote)
18 vues54 pages

Introduction au langage PHP et ses bases

Transféré par

djolkhane44
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
18 vues54 pages

Introduction au langage PHP et ses bases

Transféré par

djolkhane44
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Les opérateurs Les string Les tableaux Structures de contrôle Les fonctions

Programmation Web côté serveur


Le langage PHP

Fred Hémery

IUT Lens

Département Informatique

Programmation Web côté serveur


1 / 51
Les opérateurs Les string Les tableaux Structures de contrôle Les fonctions

Introduction PHP

Le langage PHP est un langage de scripts comme bash, perl, python, . . .

On peut l’utiliser dans plusieurs contextes :


Dans les applications web comme langage de programmation côté serveur ;
Comme langage de programmation en ligne de commande et
Comme langage pour définir des applications graphiques côté client (très peu
utilisé).

Utilisation simple des bases de données

Connexions simple avec de nombreux protocoles

Programmation Web côté serveur


2 / 51
Les opérateurs Les string Les tableaux Structures de contrôle Les fonctions

Code PHP en ligne de commande dans un fichier script

Le code PHP placé dans un fichier script constitue un bloc d’instructions PHP
marqué par les délimiteurs <?php et ?>.
# !/ bin / php -f
<? php ... ? >

La ligne #!/bin/php -f permet de spécifier l’interpréteur du code PHP.

Dans l’exemple qui suit,


la commande echo affiche la chaîne de caractères sur la sortie standard (l’écran) ;
le symbole ‘.’ marque la concaténation de chaîne de caractères ;
la constante PHP_EOL force un passage à la ligne.
la commande print produit le même résultat que la commande echo.

# !/ usr / bin / env php


<? php
echo " Bonjour le monde " . PHP_EOL ;
print " Bonjour le monde " . PHP_EOL ;
?>

Programmation Web côté serveur


3 / 51
Les opérateurs Les string Les tableaux Structures de contrôle Les fonctions

Code PHP dans une page HTML

Le code PHP placé dans une page HTML se distingue du code HTML par les
délimiteurs <?php et ?> et constitue un bloc d’instructions PHP.
<? php ... ? >

Il peut y avoir plusieurs blocs de code PHP dans une page PHP

Les instructions (code HTML) à l’extérieur des délimiteurs PHP sont envoyées
sans modification vers le client

Les instructions dans les blocs PHP sont exécutées et produisent du code HTML
envoyé vers le client.

Les délimiteurs peuvent être différents, mais ces variantes sont moins utilisées
< script language =" php " >... </ script >
<? ... ? > <! - - pas accept é dans tous les contextes -->
<% ... % >

Programmation Web côté serveur


4 / 51
Les opérateurs Les string Les tableaux Structures de contrôle Les fonctions

Sortie PHP dans une page HTML

Une sortie en PHP est produite par l’instruction echo ou print qui sont des mots
clés du langage.
<? php
echo " Bonjour le monde ";
echo (" avec des parenth é ses ") ;
print " M ê me chose pour print ";
?>

Le texte produit n’est visible que si le bloc d’instructions se trouve dans le corps
de la page HTML
< html >
< head > < title > Test PHP </ title > </ head >
< body >
<? php echo " <p > Bonjour monde </ p >"; ? >
</ body >
</ html >

Une instruction PHP se termine toujours par un point virgule.

Programmation Web côté serveur


5 / 51
Les opérateurs Les string Les tableaux Structures de contrôle Les fonctions

Compilation interprétation et production PHP

PHP : Langage interprété.


Avantage : facile de modifier le code sans boucle de développement lourde
Inconvénient : A chaque requête d’un client, le code PHP doit être analysé avant
d’être exécuté pour produire un résultat.

Condition de développement
On peut exécuter un script PHP dans un terminal avec la commande
php -f script.php, ou alors
Il faut un serveur web (apache, nginx) avec un module qui va prendre en charge
les fichiers contenant du code PHP (fichiers avec une extension .php)
Il est très facile de récupérer une distribution XAMPP Link qui s’installe sur
toutes les architectures de machine un serveur apache avec le module PHP
associé avec un serveur de base de données Mysql et un interpréteur Perl.
La page contenant du code PHP doit être gérée par le serveur apache

Depuis PHP 5.4.0, l’interpréteur fournit un serveur web interne


par exemple la commande php -S localhost:8000 permet de visualiser
l’interprétation d’un script php dans un navigateur.

Programmation Web côté serveur


6 / 51
Les opérateurs Les string Les tableaux Structures de contrôle Les fonctions

Commentaires PHP

Les commentaires dans un bloc PHP utilisent la même syntaxe que C++ ou Java
.
<? php
echo " Bonjour le monde ";
// commentaire sur une ligne ou encore
# commentaire perl , bash ...
/* commentaire sur
plusieurs lignes */
?>

Programmation Web côté serveur


7 / 51
Les opérateurs Les string Les tableaux Structures de contrôle Les fonctions

Les variables PHP

Une variable est utilisée pour stocker une valeur.

Une variable commence par le symbole $ suivi par un identifiant


$uneVariable ;

Un identifiant est une chaîne de caractères composées de lettres minuscules,


majuscules, de chiffres et le symbole _ (souligné, underscore)

L’identifiant commence obligatoirement par une lettre ou le symbole _.

L’identifiant est sensible à la casse (minuscule/majuscule).

Il est conseillé d’utiliser la notation Camel case, c-à-d chaque mot qui compose
l’identifiant commence par une majuscule sauf le premier.
$nbClientsGarage ;
$cumulDroitsCredit ;

Programmation Web côté serveur


8 / 51
Les opérateurs Les string Les tableaux Structures de contrôle Les fonctions

L’affectation PHP

On affecte une valeur à une variable en utilisant le symbole ’=’.


$nbPoints = 10;
PHP est un langage faiblement typé, cela signifie qu’il n’est pas nécessaire
d’indiquer le type de la variable avant de l’assigner.
Le type de la variable peut être modifié en fonction de la valeur affectée.
$uneVariable = " Bonjour monde !"; // type string
echo $uneVariable ; // affiche Bonjour monde !
$uneVariable = 15; // type int
echo $uneVariable ; // affiche 15
Data Type Category Description
int Scalar Integer
float Scalar Floating-point number
bool Scalar Boolean value
string Scalar Series of characters
array Composite Collection of values
object Composite User-defined data type
resource Special External resource
callable Special Function or method
null Special No value
Programmation Web côté serveur
9 / 51
Les opérateurs Les string Les tableaux Structures de contrôle Les fonctions

Les types de données


Entier
$myInt = 1234; // decimal number
$myInt = 0b10; // binary number (2 decimal)
$myInt = 0123; // octal number (83 decimal)
$myInt = 0x1A; // hexadecimal number (26 decimal)
Réel
$myFloat = 1.234;
$myFloat = 3e2; // 3*10^2 = 300
Booléen
$myBool = true
null
$myNull = null; // la variable 'null'
$myInt = $myNull + 0; // contexte numérique context (0)
$myBool = $myNull == true; // contexte booléen context (false)
echo $myNull; // contexte string ("")
Le code de bonne pratique interdit l’utilisation des variables non définies,
l’interpréteur affichera un message d’information dans le cas contraire.
echo $varUndef ; // la variable prend la valeur null

Produit
Notice : Undefined variable : varUndef in / Users / fred / Sites / EasyPHP / accueil .
åphp on line 9

Programmation Web côté serveur


10 / 51
Les opérateurs Les string Les tableaux Structures de contrôle Les fonctions

Fonctions sur les types


La fonction gettype() retourne le type d’une variable. Pour déterminer si une
variable est d’un type précis, on utilise :
is_bool() is_integer() is_double() is_string()
is_array() is_object() is_resource() is_null()
is_numeric() is_scalar()
$myInt = 10;
$myReal = 1.5;
$myStr = " bonjour " ;

echo gettype ( $myStr ) ; // affiche string


echo gettype ( $myReal ) ; // affiche double
echo is_int ( $myInt ) ; // affiche 1
echo gettype ( $varUndef ) ; // affiche un message d ' info et NULL

On peut transformer le type d’une variable en utilisant les fonctions suivantes :


intval() floatval() strval() Ou encore caster les variables :
$test_var = 8.23;
echo $test_var . " < br / > " ; // affiche "8.23"
echo ( string ) $test_var . " < br / > " ; // affiche "8.23"
echo ( int ) $test_var . " < br / > " ; // affiche "8"

Programmation Web côté serveur


11 / 51
Les opérateurs Les string Les tableaux Structures de contrôle Les fonctions

Contrôler l’état d’une variable

Deux fonctions permettent de contrôler l’état des variables :

isset() : retourne la valeur true ssi la variable passée en paramètre a été


initialisée (à une valeur différente de null).

empty() : retourne la valeur true ssi la variable passée en paramètre a une


valeur vide, i.e., null, false, 0 (0 comme integer), "" (la chaîne vide), "0" (0
comme string), array() (un tableau vide), ou une variable déclarée sans valeur
dans une classe.

$b =0;
if ( isset ( $b ) ) ... // condition é valu é e à true
if ( empty ( $b ) ) ... // condition é valu é e à true
if ( isset ( $c ) ) ... // condition é valu é e à false
if ( empty ( $c ) ) ... // condition é valu é e à true

Programmation Web côté serveur


12 / 51
Les opérateurs Les string Les tableaux Structures de contrôle Les fonctions

Les constantes

Une constante est, comme son nom l’indique, une variable pour laquelle on ne
peut pas changer la valeur.

On utilise la fonction define() pour créer une constante.

L’identifiant de la constante n’est pas précéder du symbole $ .

L’usage veut que les identifiants de constantes soient composés uniquement de


majuscules.

Une constante est utilisée pour garantir que sa valeur ne changera pas au cours
de l’exécution du script.

define ( " MA_CONSTANTE " , " 19 " ) ; // MA_CONSTANTE est initialis é e avec la
åstring "19"
echo MA_CONSTANTE ; // affiche "19" ( c ' est une string , pas un entier )
define ( " PI " , 3.14 ) ; // PI initialis é e avec la valeur 3.14
echo PI ; // affiche 3.14 ( c ' est un double )

Programmation Web côté serveur


13 / 51
Les opérateurs Les string Les tableaux Structures de contrôle Les fonctions

Informations sur les variables

PHP propose 3 fonctions pré-définies qui permettent de visualiser le contenu


d’une variable :

print_r : affiche le contenu d’une variable

var_dump : comme précédemment avec le type de la variable

var_export : affiche le contenu en utilisant la syntaxe php

$a = array ( ' un ' = > 1 , ' deux ' = > 2 , ' trois ' = > 3) ;

print_r ( $a ) ; // affiche Array ( [ un ] = > 1 [ deux ] = > 2 [ trois ] = > 3 )

var_dump ( $a ) ; // affiche array (3) { [" un "]= > int (1) [" deux "]= > int (2) ["
åtrois "]= > int (3) }

var_export ( $a ) ; // affiche array ( ' un ' = > 1 , ' deux ' = > 2 , ' trois ' = > 3 , )

Programmation Web côté serveur


14 / 51
Les opérateurs Les string Les tableaux Structures de contrôle Les fonctions

Les références de variable

Lors de l’affectation d’une variable $b par une variable $a, physiquement une
copie du contenu de la variable $a est faite dans la $b.

Il est possible de créer un alias sur une variable


$b = & $a ;

Dans ce cas, la variable $b n’occupe pas un nouvel espace mais référence la


variable $a.

Cela signifie que si la variable $a est modifiée, alors la variable $b présentera


aussi cette nouvelle valeur.

$a = 10;
$b = & $a ;
echo " a = $a , b = $b " . PHP_EOL ; // affiche a = 10 , b = 10
$a = 15;
echo " a = $a , b = $b " . PHP_EOL ; // affiche a = 15 , b = 15
$b = 5;
echo " a = $a , b = $b " . PHP_EOL ; // affiche a = 5 , b = 5

Programmation Web côté serveur


15 / 51
Les opérateurs Les string Les tableaux Structures de contrôle Les fonctions

Assignation, opérations arithmétiques


Assignation : l’assignation est l’opération qui permet de donner une valeur à une
variable.
$x = 5; // assigne la valeur 5 à la variable x

Opérations Arithmétiques :
$x = 4 + 2; // 6 // addition
$x = 4 - 2; // 2 // soustraction
$x = 4 * 2; // 8 // multiplication
$x = 4 / 2; // 2 // division
$x = 4 % 2; // 0 // modulo ( reste de la division )

Combinaison assignation, opération arithmétique :


$x = 0;
$x += 5; // $x = $x +5;
$x -= 5; // $x = $x -5;
$x *= 5; // $x = $x *5;
$x /= 5; // $x = $x /5;
$x %= 5; // $x = $x %5;
incrément, décrément
$x ++; // $x += 1;
$x - -; // $x -= 1;
$x ++; // post - increment $x = 5; $y = $x ++; // $x =6 , $y =5
$x - -; // post - decrement $x = 5; $y = ++ $x ; // $x =6 , $y =6
++ $x ; // pre - increment
-- $x ; // pre - decrement
Programmation Web côté serveur
16 / 51
Les opérateurs Les string Les tableaux Structures de contrôle Les fonctions

Opérateurs de comparaison

Les opérateurs de comparaison comparent deux opérandes et renvoient true


ou false .
$x = (2 == 3) ; // false // equal to
$x = (2 != 3) ; // true // not equal to
$x = (2 <> 3) ; // true // not equal to ( alternative )
$x = (2 === 3) ; // false // identical
$x = (2 !== 3) ; // true // not identical
$x = (2 > 3) ; // false // greater than
$x = (2 < 3) ; // true // less than
$x = (2 >= 3) ; // false // greater than or equal to
$x = (2 <= 3) ; // true // less than or equal to

L’opérateur identique (’===') compare à la fois la valeur et le type des


opérandes.
$x = (1 == " 1 " ) ; // true ( m ê me valeur )
$x = (1 === " 1 " ) ; // false ( types differents )

Programmation Web côté serveur


17 / 51
Les opérateurs Les string Les tableaux Structures de contrôle Les fonctions

Opérations logiques et bit à bit

Les opérateurs logiques sont souvent utilisés avec les opérateurs de


comparaison.
$x = ( true && false ) ; // false // logical and
$x = ( true || false ) ; // true // logical or
$x = !( true ) ; // false // logical not

Les opérations bit à bit travaillent au niveau des bits de la donnée stockée dans
la variable.
$x = 5 & 4; // 101 & 100 = 100 (4) // and
$x = 5 | 4; // 101 | 100 = 101 (5) // or
$x = 5 ^ 4; // 101 ^ 100 = 001 (1) // xor ( exclusive or )
$x = 4 << 1; // 100 << 1 = 1000 (8) // left shift
$x = 4 >> 1; // 100 >> 1 = 10 (2) // right shift
$x = ~4; // ~00000100 = 11111011 ( -5) // invert

Et la version raccourcie
$x =5; $x &= 4; // 101 & 100 = 100 (4) // and
$x =5; $x |= 4; // 101 | 100 = 101 (5) // or
$x =5; $x ^= 4; // 101 ^ 100 = 001 (1) // xor
$x =5; $x < <= 1; // 101 << 1 = 1010 (10) // left shift
$x =5; $x > >= 1; // 101 >> 1 = 10 (2) // right shift

Programmation Web côté serveur


18 / 51
Les opérateurs Les string Les tableaux Structures de contrôle Les fonctions

Ordre de précédence entre les différents opérateurs


En PHP les expressions sont évaluées de gauche à droite, cependant lorsqu’il
y a plusieurs opérateurs, l’ordre de précédence indiqué dans le tableau qui suit
s’applique pour appliquer l’ordre d’évaluation.
Ordre Operateur Ordre Operateur
1 ++ -- 10 ^
2 ~ - (unary) 11 |
3 ! 12 &&
4 * / % 13 ||
5 + - (binary) 14 = op=
6 << >> 15 and
7 < <= > >= <> 16 xor
8 == != === !== 17 or
9 &
Cette expression est équivalente à
$x = ((2+3) > (1*4) ) && ((5/5) == 1) ; //
$x = 2+3 > 1*4 && 5/5 == 1; // true
å true

Programmation Web côté serveur


19 / 51
Les opérateurs Les string Les tableaux Structures de contrôle Les fonctions

Les chaînes de caractères


Une chaîne de caractères (string) est une liste de caractères stockés dans un
tableau. Lors de l’assignation dans une variable, un délimiteur (le symbole ' ou
") marque le début et la fin de la chaîne de caractères.
$var = ' Hello ';
echo " $var world " ; // affiche Hello world
echo ' $var world "; // affiche $var world

Pour assigner une chaîne de caractères définie sur plusieurs lignes


Heredoc : fonctionnement équivalent à l’utilisation des délimiteurs "
Nowdoc : fonctionnement équivalent à l’utilisation des délimiteurs '
$s = <<< LABEL
cha î ne de caract é res heredoc
sur plusieurs lignes $var ( é valu é e )
LABEL ;
$s = <<< ' LABEL '
cha î ne de caract é res nowdoc
sur plusieurs lignes $var ( non é valu é e )
LABEL ;

L’opérateur "." permet de concaténer deux sous chaînes de caractères .


$var = ' Hello ';
echo $var . " world " ; // affiche Hello world
Programmation Web côté serveur
20 / 51
Les opérateurs Les string Les tableaux Structures de contrôle Les fonctions

Les caractères spéciaux dans les strings

car. signification car. signification


\n newline \f form feed
\t horizontal tab \$ dollar sign
\v vertical tab \' single quote
\e escape \" double quote
\r carriage return \\ backslash

$s = " Hello \ nWorld " ;


echo $s ; // affiche Hello World sur 2 lignes
echo " Hello < br / > World " ; // affiche Hello < br / > World sur 1 ligne
$s = ' It \ ' s '; // affiche " It 's "

L’accès à un caractère de la chaîne se fait en utilisant la notation [].


Syntaxe : $car = $string[index];
$s = ' Hello ';
$s [0] = 'J ';
echo $s ; // " affiche Jello "

Programmation Web côté serveur


21 / 51
Les opérateurs Les string Les tableaux Structures de contrôle Les fonctions

Quelques fonctions de manipulation des strings

Ret. Syntaxe Signification


string ltrim(string s), rtrim(string s),trim(string s) supprime les espaces
string strtolower(string s), strtoupper(string s) trans. en min., en maj.
string ucwords(string s) initial des mots en maj.
string ucfirst(string s) initial du 1er mot en ma.
array explode(string separator, string s) éclate s
string implode(string glue, array pieces) recolle les pièces
int strlen(string s) longueur de s
int strpos(string s, string m) position du 1er motif dans s
int strrpos(string s, string m) position du der motif dans s
string strrev(string s) inverse une chaîne
string substr(string s, int start, int length) extrait une chaîne
int strcasecmp(string s1, string s2) compare les chaînes
string str_replace(string s, string r, index i) replace une partie de chaîne

Programmation Web côté serveur


22 / 51
Les opérateurs Les string Les tableaux Structures de contrôle Les fonctions

Les tableaux

Un tableau est utilisé pour stocker une collection d’éléments identifiée sous un
seul nom.

Un tableau a une longueur variable en PHP

La clé d’accès à un élément du tableau peut être


un entier (tableau numérique)
une string (tableau associatif)

Un tableau peut être multi-dimensionnel (matrice, . . . )

Il existe de nombreuses fonctions en PHP pour manipuler, parcourir, accéder au


contenu d’un tableau

Programmation Web côté serveur


23 / 51
Les opérateurs Les string Les tableaux Structures de contrôle Les fonctions

Les tableaux numériques

Un tableau est créé à l’aide de la fonction array()


$a = array (1 ,2 ,3) ; // PHP 5.3
$a = [1 ,2 ,3]; // à partir de PHP 5.4

On modifie un élément du tableau avec la notation "[ ]"


$a [0] = 1;
$a [1] = 2;
$a [2] = 3;

Il est facile d’ajouter des éléments au tableau


$a [3] = 4;
$a [] = 5; // $a [4]

On accède à un élément du tableau avec la notation "[ ]" en spécifiant une


valeur d’index
echo " $a [0] $a [1] $a [2] $a [3]"; // affiche "1 2 3 4"

Programmation Web côté serveur


24 / 51
Les opérateurs Les string Les tableaux Structures de contrôle Les fonctions

Les tableaux associatifs

Lors de la création du tableau, il faut indiquer pour chaque valeur la clé associée
qui remplace l’index dans les tableaux numériques. L’opérateur => permet de
relier la valeur à sa clé
$b = array ( ' un ' = > 'a ' , ' deux ' = > 'b ' , ' trois ' = > 'c ') ;

Cette notation pourrait être utilisée dans les tableaux numériques


$a = array (0 = > 0 , 1 = > 1 , 2 = > 2) ;

On modifie un élément du tableau avec la notation "[ ]"


$b [ ' un '] = 'a ';
$b [ ' deux '] = 'b ';
$b [ ' trois '] = 'c ';
echo $b [ ' un '] . $b [ ' deux '] . $b [ ' trois ' ]; // affiche "
åabc "

Programmation Web côté serveur


25 / 51
Les opérateurs Les string Les tableaux Structures de contrôle Les fonctions

Exercice

Question

Comment stocker des valeurs dans un tableau à partir de l’index 1 ?

Programmation Web côté serveur


26 / 51
Les opérateurs Les string Les tableaux Structures de contrôle Les fonctions

Exercice

Question

Comment stocker des valeurs dans un tableau à partir de l’index 1 ?

Réponse

$tab = array () ;
$tab [1] = ' Un ';
$tab [2] = ' Deux ';
$tab [3] = ' Trois ';
print_r ( $tab ) ;

Programmation Web côté serveur


26 / 51
Les opérateurs Les string Les tableaux Structures de contrôle Les fonctions

Tableaux mixte et multi-dimensionnel


Un tableau mixte est composé de clés numériques et de clés strings
$d = array (0 = > 1 , ' truc ' = > ' machin ') ;
echo $d [0] . $d [ ' truc ' ]; // affiche "1 machin "
Un tableau multi-dimensionnel est un tableau de tableaux
$a = array ( array ( ' 00 ' , ' 01 ') , array ( ' 10 ' , ' 11 ') ) ;
$a [0][0] = ' 00 ';
$a [0][1] = ' 01 ';
$a [1][0] = ' 10 ';
$a [1][1] = ' 11 ';

echo $a [0][0] . $a [0][1] . $a [1][0] . $a [1][1]; //


åafiche 00011011

Un autre exemple
$b = array ( ' un ' = > array ( ' 00 ' , ' 01 ') ) ;
echo $b [ ' un ' ][0] . $b [ ' un ' ][1]; // "0001"
Il peut y avoir plus de deux dimensions
$e [][][] = "000";
echo $e [0][0][0]; // affiche 000
Programmation Web côté serveur
27 / 51
Les opérateurs Les string Les tableaux Structures de contrôle Les fonctions

Exercice

Question

Comment stocker plusieurs valeurs avec la même clé dans un tableau ?

Programmation Web côté serveur


28 / 51
Les opérateurs Les string Les tableaux Structures de contrôle Les fonctions

Exercice

Question

Comment stocker plusieurs valeurs avec la même clé dans un tableau ?

Réponse

$tab = array () ;
$tab [ ' rouge '] = array ( ' betterave ' , ' tomate ') ;
$tab [ ' vert '] = array ( ' haricot vert ' , 'é pinard ' , '
åcourgette ') ;
$tab [ ' jaune '] = array ( ' poivron ' , ' courge ') ;
$tab [ ' bleu '] = array ( ' aubergine ' , ' radis bleu ') ;
print_r ( $tab ) ;

Programmation Web côté serveur


28 / 51
Les opérateurs Les string Les tableaux Structures de contrôle Les fonctions

Quelques fonctions pour les tableaux

Fonction Description
print_r($tab) affiche la totalité du contenu du tableau.
print_r($tab, true) stocke la totalité du contenu du tableau dans une string.
array_slice($tab,$deb, $fin) renvoie un sous tableau de $deb à $fin du tableau $tab.
count($tab) renvoie le nombre d’éléments du tableau.
current($tab) renvoie la valeur pointée par le curseur sans modifier la position
du curseur.
key($tab) renvoie la valeur de la clé.
next($tab) avance d’une position le curseur et renvoie la valeur associée.
prev($tab) recule d’une position le curseur et renvoie la valeur associée.
end($tab) place le curseur à la fin et renvoie la valeur associée.
reset($tab) place le curseur au début et renvoie la valeur associée.
each($tab) fonction qui renvoie un tableau de 4 éléments et avance
d’une position ou false si on est à la fin du tableau.
Index Valeur
0 la clé du curseur
“key” la clé du curseur
1 la valeur du curseur
“value” la valeur du curseur

Programmation Web côté serveur


29 / 51
Les opérateurs Les string Les tableaux Structures de contrôle Les fonctions

Manipuler un tableau
Fonctions de tri
sort, rsort Trie les tableaux indexés par ordre croissant, décroissant
asort, arsort Trie les tableaux associatifs par ordre croissant, décroissant
ksort, krsort Trie les tableaux associatifs par ordre croissant, décroissant
en utilisant la valeur de clés
natsort, natrsort Trie les tableaux par ordre croissant, décroissant en
utilisant le tri naturel
usort, ursort Trie les tableaux par ordre croissant, décroissant en utilisant
une fonction de tri donnée en paramètre
Autres
array_merge() fusionne deux ou plusieurs tableaux
array_intersect() intersection entre deux ou plusieurs tableaux
shuffle() mélange les éléments du tableau
array_reverse() inverse l’ordre des éléments du tableau
...
Programmation Web côté serveur
30 / 51
Les opérateurs Les string Les tableaux Structures de contrôle Les fonctions

Modifier un tableau

array_push() Insert un élément (ou plusieurs) à la fin du tableau


array_unshift() Insert un élément (ou plusieurs) au début du tableau
array_shift() Retire le premier élément du tableau
array_pop() Retire le dernier élément du tableau
unset() Retire un élément donné du tableau
array_unique() Ne conserve que la première occurence des valeurs en
doublon du tableau
array_diff() Retire du premier tableau les valeurs présentes dans les
tableaux suivants

Programmation Web côté serveur


31 / 51
Les opérateurs Les string Les tableaux Structures de contrôle Les fonctions

Présentation des structures de contrôle

Les structures de contrôle permettent d’adapter le traitement en fonction des


données

On distingue 3 types de structures de contrôle


La séquence : Les instructions sont exécutées les unes après les autres
L’alternative : Le bloc d’instructions est exécuté en fonction de l’évaluation d’une
expression conditionnelle
La boucle : Le bloc d’instructions est exécuté en boucle en fonction de l’évaluation
d’une expression conditionnelle

Programmation Web côté serveur


32 / 51
Les opérateurs Les string Les tableaux Structures de contrôle Les fonctions

Alternative : if

L’instruction if

if ( condition ) {
if ( condition ) { // instructions du if
// instructions du if } else {
} // instructions du else
// autres instructions }
// autres instructions

Exemple

if ( condition ) { if ( $x == 1) {
// instructions du if echo " x vaut 1 " ;
} elseif ( condition1 ) { } elseif ( $x == 2) {
// instructions du else echo " x vaut 2 " ;
} } else {
// autres instructions echo " x est diff é rent de 1 et de 2 " ;
}

Programmation Web côté serveur


33 / 51
Les opérateurs Les string Les tableaux Structures de contrôle Les fonctions

Alternative : switch
L’instruction switch : suite d’alternatives. Le programme évalue les choix les
uns après les autres. L’instruction break est utilisée pour sortie du switch.
l’opérateur ternaire est une écriture simplifiée du "if then else".
switch ( $var ) { Exemple
case label1 :
i n s t ru c ti o n_ la b el 1 ; switch ( $x ) {
... case 1 :
break ; echo " x vaut 1 " ;
case label2 : break ;
i n s t ru c ti o n_ la b el 2 ; case 2 :
... echo " x vaut 2 " ;
break ; break ;
default : default :
instructions_par_defaut ; echo " x est diff é rent de 1 et de 2
... å" ;
} }
// autres instructions

Exemple
// expression qui utilise l ' op é rateur ternaire
$y = ( $x == 1) ? 1 : 2;

// instruction qui utilise l ' op é rateur ternaire


( $x == 1) ? $y = 1 : $y = 2;

Programmation Web côté serveur


34 / 51
Les opérateurs Les string Les tableaux Structures de contrôle Les fonctions

Boucle : while

L’instruction while

Exemple
while ( condition ) {
instruction1 ; $i = 0;
instruction2 ; while ( $i < 10) {
... echo $i ++;
} } // affiche 0123456789
// autres instructions

instruction do - while

exemple

$i = 0;
do {
echo $i ++;
} while ( $i < 10) ; // affiche 0123456789

Programmation Web côté serveur


35 / 51
Les opérateurs Les string Les tableaux Structures de contrôle Les fonctions

Boucle : for

L’instruction for

for ( initi alisation ; condition ; incr é Exemple


åmentation ) {
instruction1 ; for ( $i = 0; $i < 10; $i ++) {
instruction2 ; echo $i ;
... } // affiche 0123456789
}
// autres instructions

instruction foreach : boucle très utile dans le parcours de tableaux

Exemple
$a = array (1 ,2 ,3) ;
foreach ( $tab as $elt ) {
foreach ( $a as $v ) {
instruction1 ;
echo $v ;
instruction2 ;
} // affiche "123"
...
}
$a = array ( ' un ' = > 1 , ' deux ' = > 2 , '
foreach ( $tab as $cle = > $valeur ) {
åtrois ' = > 3) ;
instruction1 ;
foreach ( $a as $k = > $v ) {
instruction2 ;
echo " $k = > $v <br > " ;
...
} // affiche un = > 1 <br > deux = > 2 <br
}
å> trois = > 3 <br >
Programmation Web côté serveur
36 / 51
Les opérateurs Les string Les tableaux Structures de contrôle Les fonctions

Syntaxe alternative
Simplifications
while ( $i < 10) : echo $i ++; endwhile ;

for ( $i = 0; $i < 10; $i ++) : echo $i ; endfor ;

foreach ( $a as $v ) : echo $v ; endforeach ;


l’instruction break qui fait sortie l’exécution de la boucle englobante

Exemple
for (;;) { break ; } // fin du for

$i = 0;
while ( $i ++ < 10) {
for (;;) { break 2; } // fin du for et du while (2 boucles
åenglobantes )
}

l’instruction continue qui arrête l’itération courante et lance l’itération suivante

Exemple
while ( $i ++ < 10) { continue ; } // lance l ' it é ration suivante

$i = 0;
while ( $i ++ < 10) {
for (;;) { continue 2; } // lance l ' it é ration suivante du while
}
Programmation Web côté serveur
37 / 51
Les opérateurs Les string Les tableaux Structures de contrôle Les fonctions

Exercice
Question
Écrire le script qui indique si un nombre est parfait (un nombre est parfait ssi
il est égal à la somme de ses diviseurs, 6 = 1 + 2 + 3 est parfait)

Programmation Web côté serveur


38 / 51
Les opérateurs Les string Les tableaux Structures de contrôle Les fonctions

Exercice
Question
Écrire le script qui indique si un nombre est parfait (un nombre est parfait ssi
il est égal à la somme de ses diviseurs, 6 = 1 + 2 + 3 est parfait)

Réponse
$div = array () ;
echo " Saisir une valeur : " ;
$val = trim ( fgets ( STDIN ) ) ;
if ( empty ( $val ) || ! is_numeric ( $val ) ) {
echo " Saisir un entier ! " ;
return ;
}
$i = 1;
while ( $i < $val ) {
if ( $val % $i == 0) {
$div [] = $i ;
}
$i ++;
}
$cumul = 0;
foreach ( $div as $d )
$cumul += $d ;
if ( $cumul == $val ) {
echo " $val est parfait " . PHP_EOL ;
print_r ( $div ) ;
}

Programmation Web côté serveur


38 / 51
Les opérateurs Les string Les tableaux Structures de contrôle Les fonctions

Déclaration et utilisation des fonctions

Déclaration
function nomFonc () {
echo " Hello World " ;
}

Utilisation
nomFonc () ; // " affiche Hello World "

Programmation Web côté serveur


39 / 51
Les opérateurs Les string Les tableaux Structures de contrôle Les fonctions

Fonctions avec paramètres

Déclaration
function nomFoncP ( $param1 , $oaram2 , $param3 ) {
instruction1 ;
instruction2 ;
...
}

Utilisation
nomFoncP ( $p1 , $p2 , $p3 ) ;

Les paramètres effectifs (les valeurs indiquées à l’appel) seront utilisés dans la
fonction et correspondent aux paramètres formels indiqués lors de l’écriture de
la fonction.
Paramètres par défaut : Il est possible de donner une valeur par défaut à un
paramètre lors de la déclaration de la fonction.
function nomFoncP ( $param1 , $param2 =
åvalDef ) {
function prixTTC ( $prixHT , $tva =19.6) {
instruction1 ;
echo $prixHT * $tva ;
instruction2 ;
}
...
}

Programmation Web côté serveur


40 / 51
Les opérateurs Les string Les tableaux Structures de contrôle Les fonctions

Gestion des paramètres


Il est possible de mettre plus de paramètres effectifs que de paramètres
formels déclarés. On utilise les fonctions suivantes pour gérer cela :

func_num_args() : nombre de paramètres

func_get_args() : renvoie un tableau avec les paramètres

func_get_arg($index) : renvoie la valeur du paramètre en position $index

Exemple

function myFunc ()
{
$num = func_num_args () ;
$args = func_get_args () ;
for ( $i = 0; $i < $num ; $i ++)
echo $args [ $i ] . ' ';
}
myFunc ( ' Do ' , 'R é ' , ' Mi ') ; // affiche " Do r é Mi "

Programmation Web côté serveur


41 / 51
Les opérateurs Les string Les tableaux Structures de contrôle Les fonctions

Paramètres par référence

Les paramètres sont passés par valeur par défaut (copie de la valeur du
paramètre effectif dans le paramètre formel). Une modification de la valeur du
paramètre dans la fonction ne modifie pas la valeur du paramètre effectif.Il est
possible de passer un paramètre par référence en faisant précéder le
paramètre formel par le symbole &.

Exemple

function swap (& $val1 , & $val2 ) {


$tmp = $val1 ;
$val1 = $val2 ;
$val2 = $tmp ;
}
...
$x =10; $y =20;
swap ( $x , $y ) ;
echo " $x $y "; // affiche 20 10

Programmation Web côté serveur


42 / 51
Les opérateurs Les string Les tableaux Structures de contrôle Les fonctions

Retour d’une fonction

Une fonction peut renvoyer une valeur en utilisant l’instruction return.

La fonction renvoie la valeur qui se situe derrière l’instruction return.

L’instruction return termine l’exécution de la fonction et sort de la fonction.

Exemple

function maxDe ( $val1 , $val2 ) {


if ( $val1 > $val2 )
return $val1 ;
else
return $val2 ;
}
$v1 = 10; $v2 = 20
echo " Valeur max = " . maxDe ( $v1 , $v2 ) ; // affiche " Valeur
åmax = 20"

Programmation Web côté serveur


43 / 51
Les opérateurs Les string Les tableaux Structures de contrôle Les fonctions

Les fonction dynamiques

Le nom d’une fonction à exécuter n’est parfois connu que juste avant l’appel.
Pour faire cela il suffit de placer le nom de la fonction dans une variable et
d’écrire une instruction avec cette variable suivie d’un niveau de parenthèses
contenant les éventuels paramètres.

Exemple

$s = " date " ; // fonction qui affiche la date


$s ( " d / M / Y " ) ; // affiche 21/ Sep /2017
$t = array ( " min " ," max " ) ; // min et max renvoient respectivement le min et le
å max
foreach ( $t as $f )
echo " $f = " . $f (10 ,20) . " " ; // affiche min =10 max =20

Programmation Web côté serveur


44 / 51
Les opérateurs Les string Les tableaux Structures de contrôle Les fonctions

Les fonctions anonymes


Il est possible d’affecter à une variable la définition d’une fonction sans nom.

Exemple

$say = function ( $name ) {


echo " Hello " . $name ;
};
$say ( " World " ) ; // affiche " Hello World "

Une fonction anonyme peut utiliser le contexte dans lequel elle s’exécute. Pour
cela elle utilise le mot clé use.

Exemple

$x = 1;
$y = 2;
$callback = function ( $z ) use ( $x , $y ) {
return $x + $y + $z ;
};
echo $callback (3) ; // affiche "6"

Programmation Web côté serveur


45 / 51
Les opérateurs Les string Les tableaux Structures de contrôle Les fonctions

Variables locales et variables globales


Une variable globale est une variable définie dans un script en dehors de
toute fonction et classe. Une variable locale est une variable utilisée dans une
fonction, sauf si il y a indication contraire.
function decritMonChien () {
$couleur = " marron " ;
echo " Couleur $couleur du chien " . PHP_EOL ;
}
// Couleur du chat
$couleur = " noire " ;
// affiche les infos du chien et du chat
dec ritMon Chien () ;
echo " Robe $couleur du chat " . PHP_EOL ;
// affiche
// Couleur marron du chien
// Robe noire du chat
function decritMonChien2 () {
global $couleur ;
echo " Couleur $couleur du chien " . PHP_EOL ;
$couleur = " marron " ;
}
d ec ri t Mo nChien2 () ;
echo " Robe $couleur du chat " . PHP_EOL ;
// affiche
// Couleur noire du chien
// Robe marron du chat

Programmation Web côté serveur


46 / 51
Les opérateurs Les string Les tableaux Structures de contrôle Les fonctions

Variables locales et variables globales

Pour utiliser une variable globale au sein d’une fonction il faut la déclarer en la
faisant précéder du mot-clé global, ou en y accédant directement avec le
tableau associatif GLOBALS.

function sum () { function sum () {


global $a , $b ; $GLOBALS [ 'b '] = $GLOBALS [ 'a '] +
$b = $a + $b ; $GLOBALS [ 'b ' ];
} }
$a = 1; $a = 1;
$b = 2; $b = 2;
sum () ; sum () ;
echo $b ; // affiche 3 echo $b ; // affiche 3

Programmation Web côté serveur


47 / 51
Les opérateurs Les string Les tableaux Structures de contrôle Les fonctions

Les variables globales prédéfinies

Elles apparaissent dans des tableaux dits superglobaux :

$_ENV contient le nom et la valeur des variables d’environnement

$_SERVER contient les informations liées au serveur web

$_GET contient le nom et la valeur des données issues d’un formulaire envoyé
par la méthode get

$_POST contient le nom et la valeur des données issues d’un formulaire envoyé
par la méthode post

$_FILES contient le nom des fichiers téléchargés à partir du poste client

$_COOKIE contient le nom et la valeur des cookies enregistrées sur le poste du


client

$_SESSION contient l’ensemble des noms de variables de session et leurs


valeurs

Programmation Web côté serveur


48 / 51
Les opérateurs Les string Les tableaux Structures de contrôle Les fonctions

Variables statiques dans une fonction

La déclaration d’une variable statique dans une fonction permet de conserver


sa valeur d’un appel à l’autre.

function nextInt () {
static $cpt = 0;
return $cpt ++;
}

echo nextInt () . " \ n " ; // affiche 0


echo nextInt () . " \ n " ; // affiche 1
echo nextInt () . " \ n " ; // affiche 2

Programmation Web côté serveur


49 / 51
Les opérateurs Les string Les tableaux Structures de contrôle Les fonctions

Variables constantes avec const

On peut définir une variable avec la fonction define(), depuis PHP 5.3+ le mot
clè const (utilisé aussi dans les versions précédentes pour les constantes de
classe) permet aussi de créer des variables globales constantes.
La valeur indiquée ne peut pas être une expression.
Ne peut pas être une constante locale.
Une constante définie avec const sera calculée au moment de la compilation.

Une constante définie avec define() sera calculée au moment de l’exécution.

const PI = 3.14;

echo PI . " \ n " ;

define ( ' UN ' , 1) ; // 1


define ( ' DEUX ' , UN +1) ; // 2 , impossible avec const

echo UN . " \ n " ;


echo DEUX . " \ n " ;

Programmation Web côté serveur


50 / 51
Les opérateurs Les string Les tableaux Structures de contrôle Les fonctions

Constantes magiques
Name Description
__LINE__ ligne courante dans le fichier.
__FILE__ chemin complet d’accès au fichier.
__DIR__ répertoire du fichier.
__FUNCTION__ nom de la fonction.
__CLASS__ nom de la classe avec le namespace.
__METHOD__ nom de la méthode dans la classe.
__NAMESPACE__ nom du namespace.

TABLE – les constantes magiques

public function setLocation ( $x , $y ) {


if ( is_int ( $x ) && is_int ( $y ) ) {
$X = $x ;
$Y = $y ;
} else
die ( " Error " . " File : " . __FILE__ . " on line : " . __LINE__ . " :
åcoordonn é es de type entier " . PHP_EOL ) ;
}

Programmation Web côté serveur


51 / 51

Vous aimerez peut-être aussi