Vous êtes sur la page 1sur 57

Dveloppement Web 1

Les bases du PHP Slide 1

Dveloppement Web 1 - PHP Youness IDRISSI KHAMLICHI


(ykhamlichi@gmail.com) 2011/2012

ENSA-Khouribga

Y. KHAMLICHI

Dveloppement Web 1
Les bases du PHP Slide 2

Introduction

Personal Home Page ou (Hypertext PreProcessor)


Un langage de scripts volu pour la conception de sites
entiers: Sintgre HTML Relativement simple utiliser Fait notamment des miracles, coupl un serveur de base de donnes Cest un langage qui sexcute du ct serveur Il est interprt par le serveur Web

ENSA-Khouribga

Y. KHAMLICHI

Dveloppement Web 1
Les bases du PHP Slide 3

Introduction

Intrt de la base de donnes


La base de donnes la plus couramment utilise avec PHP est sans
aucun doute MySQL A quoi sert une base de donnes ? Lorsque vous allez produire des informations dans votre script PHP, vous devez les stocker quelque part Si ce n'est pas le cas, elles seront alors perdues lorsque le serveur renverra la page HTML au client (votre navigateur) Pour les stocker, il existe deux solutions : 1. les enregistrer dans un fichier texte sur le serveur (quelque part dans l'arborescence de votre hbergement) 2. les enregistrer dans une base de donnes La sauvegarde dans un fichier texte n'est pas l'idal, notamment lorsque vous souhaitez chercher, modifier ou supprimer une partie de l'information que vous stockez
ENSA-Khouribga
Y. KHAMLICHI

Dveloppement Web 1
Les bases du PHP Slide 4

Introduction

Utiliser PHP sur son ordinateur


Pourquoi installer PHP sur son ordinateur ?
Pour tester vos script PHP, vous allez tre amen les envoyer sur votre hbergeur, sur Internet Cependant il devient vite trs lourd de sans cesse renvoyer ces fichiers par FTP C'est pourquoi installer un serveur web sur son ordinateur est utile, et permet de tester ses scripts plus souplement Concrtement, votre ordinateur sera la fois client et serveur Ainsi vous pourrez programmer en PHP sans avoir besoin d'tre connect Internet, ce qui peut tre utile pour les personnes ne disposant pas de connexions illimites Pour cela, il existe plusieurs utilitaires trs pratiques qui installeront Apache Le plus connu est : EasyPHP (Php4) et Wamp Server
ENSA-Khouribga
Y. KHAMLICHI

Dveloppement Web 1
Les bases du PHP Slide 5

Utilisation de EasyPhp (WampServer)

Exemple : exemple.php
<?php echo 'Bonjour tout le monde !' ; ?> Rangement du fichier Sur votre station :
C:\Program Files\EasyPHP1-8\www\exemple0.php

Normalement tout ce que vous mettez dans www sera


automatiquement recopi chez vous dans le rpertoire www Tout ce qui est dans mysql/data sera rang chez vous dans le rpertoire mysql/data

ENSA-Khouribga

Y. KHAMLICHI

Dveloppement Web 1
Les bases du PHP Slide 6

Les bases de PHP

Les pages web dynamiques gnres avec PHP sont au


format php (index.php par exemple). Le code source php est directement insr dans le fichier HTML grce aux balises (tags) suivantes: <?php ?> (balise standard) <? ?> <script language=PHP> </script> <% %> (balise ASP) trois premires balises sont automatiquement reconnues par le serveur PHP (serveur APACHE). Quant la balise ASP, elle doit tre dfinie dans le fichier de configuration du moteur PHP nomm PHP.INI
Y. KHAMLICHI

Les

ENSA-Khouribga

Dveloppement Web 1
Les bases du PHP Slide 7

Les bases de PHP

Exemple dune page nomme index.php:


<html> <head> <title>Exemple de page PHP</title> </head> <body> <p>Ceci est du HTML</p> <?php echo Ceci est du PHP?> </body> </html>
ENSA-Khouribga
Y. KHAMLICHI

Dveloppement Web 1
Les bases du PHP Slide 8

Exemple de scripts
Soit la page nomme index.php:

Code source

Aperu sur le navigateur

Code source

(cot serveur)

(cot client)

(cot client)

On remarque que les balises PHP qui existent sur la page dorigine (cot serveur) ont disparu au cot client => confidentialit du code PHP ENSA-Khouribga
Y. KHAMLICHI

Dveloppement Web 1
Les bases du PHP Slide 9

Les bases du PHP

Du HTML dans du PHP : exemple1.php


echo permet dintroduire du code HTML Exemple :
<?php echo '<font face="arial" size="2" color="red">Bonjour le monde !</font>'; ?> Rsultat

Nous avons ajout la balise font en HTML pour formater le texte En fait PHP ne fait pas le formatage, il faut utiliser HTML pour a
ENSA-Khouribga
Y. KHAMLICHI

Dveloppement Web 1
Les bases du PHP Slide 10

Les bases du PHP

Autre exemple : exemple2.php


Affichage dune image en plus du texte
<?php
echo '<div align="center"><font face="arial" size="2" color="blue"> echo '< Bonjour le monde !</font><br /> '; img src="images/globe.gif" border="0" /></div> ';

?>

ENSA-Khouribga

Y. KHAMLICHI

Dveloppement Web 1
Les bases du PHP Slide 11

Les bases du PHP

echo :
devient plus intressante avec des variables : exemple3.php
<?php
for ($i=1; $i<=6;$i++) { echo "<br>"; echo "<font size= $i >"; echo "voici une commande <b>echo</b> avec des <i>balises</i>html"; }

?>
ENSA-Khouribga
Y. KHAMLICHI

Dveloppement Web 1
Les bases du PHP Slide 12

Les bases du PHP

Du code PHP dans du HTML


A partir du moment o vous placez du code PHP dans
un fichier *.htm ou *.html, vous devriez renommer ce fichier en *.php Le code php se place dans le body

ENSA-Khouribga

Y. KHAMLICHI

Dveloppement Web 1
Les bases du PHP Slide 13

Sparateur dinstructions

Sparateur dinstructions
Comme en C une instruction se termine par un point-virgule
; .

Exemple :
<?php echo "Ceci est un test"; ?> Ou : <?php echo "Ceci est un test" ?>

ENSA-Khouribga

Y. KHAMLICHI

Dveloppement Web 1
Les bases du PHP Slide 14

Bloc dinstructions

Bloc dinstructions
Un bloc d'instructions se place entre accolades { et }.

Exemple.php
<?php
for ($i=1; $i<=6;$i++) { echo "<br>"; echo "$i"; }

?>

ENSA-Khouribga

Y. KHAMLICHI

Dveloppement Web 1
Les bases du PHP Slide 15

Les commentaires Les Commentaires


Un script PHP se commente de la mme faon quen C:
// commentaire de fin de ligne (seule la ligne prcde par le
double slash est commente) /* commentaire */ commentaire sur plusieurs lignes (tout ce qui est compris entre /* et */ est trait en tant que commentaire

IL est recommand de commenter largement ses scripts. Cela


permettrait de modifier aisment ses pages Web ultrieurement.

ENSA-Khouribga

Y. KHAMLICHI

Dveloppement Web 1
Les bases du PHP Slide 16

Les variables
Les variables En PHP le typage des variable est implicite. Il nest donc pas ncessaire de dclarer les types ni dinitialiser les variables. Il est mme possible daffecter une variable des valeurs de types diffrents dans le mme script. Les identificateurs de variables sont prcdes par le symbole $ Exemple:
$nom=ENSA; $c=$a+$b;

Les variables peuvent tre de type entier (integer), rel (double),


chane de caractres (string), tableau (array), boolen (boolean). Il est possible de convertir le type dune variable (le CAST) Exemple:
$str = 12; $nbr = (int)$str;
ENSA-Khouribga

// $str vaut la chane 12 // $nbr vaut le nombre 12


Y. KHAMLICHI

Dveloppement Web 1
Les bases du PHP Slide 17

Les constantes
Les Constantes Les constantes PHP ne sont prfixes par aucun symboles. Elles
sont dclare de la faon suivante:
define(id_constante,valeur); // ou bien define(id_constante, valeur); Exemple: define(nom, ENSA);

Dans ce cas la constante nom vaut la valeur ENSA Les constantes ne sont dfinie quune seule fois dans le script.
Leurs valeurs reste inchanges et leurs identificateurs ne sont pas sensibles la casse (contrairement aux variables).

ENSA-Khouribga

Y. KHAMLICHI

Dveloppement Web 1
Les bases du PHP Slide 18

Les oprateurs

Oprateurs arithmtiques :
+ (addition), - (soustraction), * (multipli), / (divis), % (modulo), ++ (incrment), --(dcrment).

Oprateurs dassignement :
= (affectation), *= ($x*=$y quivalent $x=$x*$y), /=, +=, -=, %=

Oprateurs logiques :
and, && (et), or, || (ou), xor (ou exclusif), ! (non)

Oprateurs de comparaison :
== (galit), < (infrieur strict), <= (infrieur large), >, >=, != (diffrence)
ENSA-Khouribga
Y. KHAMLICHI

Dveloppement Web 1
Les bases du PHP Slide 19

Les oprateurs

Oprateurs arithmtiques
Le modulo :
renvoie le reste de la division 15%2 : renvoie 1 $i++ : quivalent $i = $i+1 $i-- : quivalent $i = $i-1 ++$i : la variable est incrmente puis value $i++ : la variable est value puis incrmente $i +=5 : quivalent : $i = $i+5, de mme pour *=, -=, /=

ENSA-Khouribga

Y. KHAMLICHI

Dveloppement Web 1
Les bases du PHP Slide 20

Les oprateurs

Oprateurs logiques

Exemple $a and $b $a or $b $a xor $b Rsultat Vrai si $a ET $b sont vrais Vrai si $a OU $b est vrai Vrai si $a OU $b est vrai, mais pas les deux en mme temps ! $a NON ( Not ) Vrai si $a est faux $a && $b ET ( And ) Vrai si $a ET $b sont vrais $a || $b OU ( Or ) Vrai si $a OU $b est vrai La raison pour laquelle il existe deux types de "ET" et de "OU" est qu'ils ont des priorits diffrentes Nom ET ( And ) OU ( Or ) XOR ( Xor )

ENSA-Khouribga

Y. KHAMLICHI

Dveloppement Web 1
Les bases du PHP Slide 21

Les oprateurs
Il existe un oprateur trs spcial qui quivaut une structure
conditionnelle complexe if then else la diffrence quil renvoie un rsultat de valeur pouvant ne pas tre un boolen : loprateur ternaire.

Syntaxe : (condition)?(expression1):(expression2);
Si la condition est vrai alors value et renvoie lexpression1
sinon value et renvoie lexpression2.

Exemple : $nbr = ($toto>10)?($toto):($toto%10);


Dans cet exemple, la variable $nbr prend $toto pour valeur si
$toto est strictement suprieur 10, sinon vaut le reste de la division entire de $toto par 10.
Y. KHAMLICHI

ENSA-Khouribga

Dveloppement Web 1
Les bases du PHP Slide 22

Les rfrences

On peut la manire des pointeurs en C faire rfrence


une variable grce loprateur & (ET commercial).

Exemple :
$var1 = 100;
// la variable $var1 est initialise la //valeur 100

$var2 = &$var1; // la variable $var2 fait rfrence // $var1


$var1++; echo $var2;
ENSA-Khouribga

// on change la valeur de $var1 // qui est rpercute sur $var2 qui // vaut alors 101
Y. KHAMLICHI

Dveloppement Web 1
Les bases du PHP Slide 23

Fonctions agissant sur les variables


Quelques fonctions : empty($var) : teste si la variable est vide ou non (renvoie true ou false) isset($var) : teste si la variable existe ou non (renvoie true ou false) unset($var) : dtruit une variable gettype($var) : retourne le type de la variable settype($var, type) : convertit la variable dun type un autre (CAST) is_int() : teste si la variable est de type entier ou non (renvoie true ou false) is_long(), is_double(), is_string(), is_array(), is_bool(), is_float(), is_numeric(), is_integer() : Idem que is_int().
ENSA-Khouribga
Y. KHAMLICHI

Dveloppement Web 1
Les bases du PHP Slide 24

Fonctions agissant sur les variables

Une variable peut prendre comme identificateur la valeur


dune autre variable en utilisant la syntaxe suivante: ${$var} = valeur

Exemple: $variable = bonjour; ${$variable} = 2007; echo $bonjour; // renvoie 2007

Dans cet exemple lidentificateur de la deuxime variable


a pris la valeur de la premire variable bonjour.

ENSA-Khouribga

Y. KHAMLICHI

Dveloppement Web 1
Les bases du PHP Slide 25

Mathmatiques
PHP dispose dune grande srie de fonctions mathmatiques. Quelques fonctions: abs($x) : renvoie la valeur absolue de $x ceil($x) : arrondi suprieur floor($x) : arrondi infrieur pow($x,$y) : x exposant y round($x,$i) : arrondi de x la ime dcimale max($a, $b, $c ) : retourne largument de valeur maximum min($a, $b, $c ) : retourne largument de valeur minimum pi() : retourne la valeur de PI Et aussi : cos, sin, tan, exp, log, sqrt ainsi que des
constantes tels que M_PI, M_E

ENSA-Khouribga

Y. KHAMLICHI

Dveloppement Web 1
Les bases du PHP Slide 26

Mathmatiques
Nombres alatoires La fonction rand($x,$y) permet de gnrer un nombre alatoire compris entre $x et $y sils sont dclars sinon gnre un nombre alatoire compris entre 0 et RAND_MAX srand() initialise le gnrateur alatoire getrandmax() retourne la valeur du plus grand entier pouvant tre gnr.

La fonction rand() se base sur de vielles algorithmes. Il a

donc un comportement qui peut tre prvisible. La nouvelle fonction mt_rand() est base sur la cryptographie. Elle est plus rapide et plus imprvisible. Les fonctions qui drivent de la mme famille sont mt_srand() et mt_getrandmax().
ENSA-Khouribga
Y. KHAMLICHI

Dveloppement Web 1
Les bases du PHP Slide 27

Mathmatiques

Formatage dun nombre


number_format ($nbr,$dec,$a,$b) : retourne une chane de
caractres reprsentant le nombre $nbr avec $dec dcimales aprs formatage. La chane $a reprsente le symbole faisant office de virgule et $b le sparateur de milliers. Par dfaut, le formatage est anglophone : $a = . et $b = , Cette fonction est trs utile pour reprsenter les nombres levs au format francophone

Exemples: number_format (1000000.3333); // affiche 1,000,000 number_format (1000000.3333,2); // affiche 1,000,000.33 number_format(1000000.3333,2,",",".");//affiche1.000.000,33

ENSA-Khouribga

Y. KHAMLICHI

Dveloppement Web 1
Les bases du PHP Slide 28

Chanes de caractre

Une variable chane de caractres nest pas limite en

nombre de caractres. Elle est toujours dlimite par des simples quotes () ou des doubles quotes (). Exemples : $etablissement = ENSA; $ville = Khouribga;

Les doubles quotes permettent lvaluation des variables


et caractres spciaux contenus dans la chane (comme en C) alors que les simples ne le permettent pas. Exemples : echo $etablissement; // affiche ENSA echo $etablissement; // affiche $etablissement
ENSA-Khouribga

Y. KHAMLICHI

Dveloppement Web 1
Les bases du PHP Slide 29

Chanes de caractre

Concatnation de chanes Exemple 1 :


$var1 = Hello; $var2 = Word; echo $var1.$var2;
// imprime HelloWord

Exemple 2 : $etab = ENSA; echo $etab.Khouribga; // Affiche ENSAKhouribga


Exemple 3 : $var = Universit; $var.= Hassan 1er echo $var; // affiche Universit Hassan 1er
Y. KHAMLICHI

ENSA-Khouribga

Dveloppement Web 1
Les bases du PHP Slide 30

Chanes de caractre
Affichage echo est la fonction daffichage la plus utilise en PHP. Exemple: echo Bonjour // Affiche Bonjour

Cependant ils existent dautres fonction plus ou moins


utilises. savoir: print() et printf() print( chane); // quivalent echo chane Printf(chane,format) // affichage format comme en C

Exemple:
Printf(ENSA %s,Khouribga); // imprime ENSA
Khouribga
ENSA-Khouribga
Y. KHAMLICHI

Dveloppement Web 1
Les bases du PHP Slide 31

Chanes de caractre
Affichage suite On peut afficher des chanes de caractres stalant sur plusieurs lignes en utilisant la syntaxe suivante: $str = <<<EOD Cette syntaxe permet de dclarer une chane de caractres qui occupe plusieurs ligne EOD; echo $str; // Cette syntaxe permet de dclarer une // chane de caractres qui occupe plusieurs lignes
ENSA-Khouribga
Y. KHAMLICHI

Dveloppement Web 1
Les bases du PHP Slide 32

Chanes de caractre
Quelques fonctions strlen($str) : retourne la taille de la chane $str en caractres. strtolower($str) : conversion en minuscules strtoupper($str) : conversion en majuscules ucfirst($str) : convertit la premire lettre en majuscule trim($str) : suppression des espaces de dbut et de fin de chane substr($str,$i,$j) : retourne une sous chane de $str de taille $j et dbutant la position $i addslashes($str) : dspcialise les caractres spciaux ord($char) : retourne la valeur ASCII du caractre $char
ENSA-Khouribga
Y. KHAMLICHI

Dveloppement Web 1
Les bases du PHP Slide 33

Les structures de contrle


La syntaxe des structures de contrle est la mme que celle en
langage C.

Structures conditionnelles
if( condition1 ) { traitement 1 } elseif(condition 2-1) { traitement 2-1 } else { traitement 2-2 }

ENSA-Khouribga

Y. KHAMLICHI

Dveloppement Web 1
Les bases du PHP Slide 34

Les structures de contrle


Structures conditionnelles suite switch( paramtre_index ) { case valeur 1 : { traitement 1 } break case valeur 2 : { traitement 2 } break default : { traitement par dfaut } } Structures de boucles for( $i=$n ; $i<$m ; $i++ ) { traitement }
ENSA-Khouribga
Y. KHAMLICHI

Dveloppement Web 1
Les bases du PHP Slide 35

Les structures de contrle Structures de boucles


while( condition ) { traitement }

do { traitement } while( condition )


ENSA-Khouribga
Y. KHAMLICHI

Dveloppement Web 1
Les bases du PHP Slide 36

Les structures de contrle


Linstruction break permet de quitter prmaturment une boucle. Exemple :
while($nbr < 10) { echo $nbr.<br>; if($nbr == 5) break; $nbr++; }

Linstruction continue permet dignorer le traitement associ une


valeur de la boucle Exemple :
for($i=1; $i<=10; $i++) { if($i==5) continue; echo $i; }

ENSA-Khouribga

Y. KHAMLICHI

Dveloppement Web 1
Les bases du PHP Slide 37

Les tableaux

La fonction array() permet de crer des tableaux

dynamiques qui seront exploits par les scripts PHP. Un tableau array est temporaire et ne reste gnr que le temps du droulement du script. Les tableaux array servent souvent stoker les donnes provenant dune base de donnes en attendant le traitement. Elles permettent aussi aux fonctions de retourner plusieurs rsultats au lieu dune seule.

Remarque:
les tableaux dynamiques ou arrays n'ont rien voir avec les
tableaux HTML, qui servent la mise en forme des donnes de la page Web.
Y. KHAMLICHI

ENSA-Khouribga

Dveloppement Web 1
Les bases du PHP Slide 38

Les tableaux

Pour initialiser un tableau on utilise plusieurs mthodes: Mthode 1: (classique)


Exemple:
$tableau= array($val1,$val2,$val3,);
$tab=array(ENSA,2011,Khouribga); dans ce cas $tab[0]=ENSA $tab[1]=2011 $tab[2]=Khouribga

Mthode 2: (initialisation directe)


$tableau[0]=$val0; $tableau[1]=$val1; $tableau[10]=$val10;

ENSA-Khouribga

Y. KHAMLICHI

Dveloppement Web 1
Les bases du PHP Slide 39

Les tableaux
Mthode 3: (initialisation directe implicite)
$tableau[]=$val0; (sous-entend $tableau[0]=$val0) $tableau[]=$val1; (sous-entend $tableau[1]=$val1) $tableau[]=$val2;

Lappel dun lment du tableau se fait laide de son indice Exemple:


Echo $tab[0];

Parcours dun tableau

$i=0; while($i <= count($tab)) // count() retourne le nombre dlments { echo $tab[$i].<br>; $i++; }

ENSA-Khouribga

Y. KHAMLICHI

Dveloppement Web 1
Les bases du PHP Slide 40

Les tableaux
Parcours dun tableau La mthode la plus simple pour parcourir un tableau consiste lutilisation de la boucle foreach La syntaxe est la suivante:
foreach($tableau as $element) { traitement; } La variable $element prend pour valeurs successives tous les lments du tableau nomm $tableau. Exemple: foreach($tab as $elem) { echo $elem.<br>; }
ENSA-Khouribga
Y. KHAMLICHI

Dveloppement Web 1
Les bases du PHP Slide 41

Les tableaux
Fonctions manipulant les tableaux count(), sizeof() : retournent le nombre dlments du tableau in_array($var,$tab) : dit si la valeur de $var existe dans le tableau

$tab list($var1,$var2) : transforme un tableau en liste de variables. range($i,$j) : retourne un tableau contenant un intervalle de valeurs shuffle($tab) : mlange les lments dun tableau sort($tab) : trie alphanumrique les lments du tableau rsort($tab) : trie alphanumrique inverse les lments du tableau implode($str,$tab), join : retournent une chane de caractres contenant les lments du tableau $tab joints par la chane de jointure $str explode($delim,$str) : retourne un tableau dont les lments proviennent de la chane $str et dont le dlimiteur est $delim array_merge($tab1,$tab2,$tab3) : concatne les tableaux passs en arguments array_rand($tab) : retourne un lment du tableau au hasard

ENSA-Khouribga

Y. KHAMLICHI

Dveloppement Web 1
Les bases du PHP Slide 42

Les tableaux associatifs

Dans un tableau associatif on associe chacun de ses


lments une cl dont la valeur est de type chane de caractres. dun tableau normal.

Linitialisation dun tableau associatif est similaire celle


Exemple 1 :

$personne = array(Nom => Csar, Prnom => Jules);


Exemple 2 : $personne[Nom] = Csar; $personne[Prnom] = Jules; Ici la cl Nom est associe la valeur Csar.

ENSA-Khouribga

Y. KHAMLICHI

Dveloppement Web 1
Les bases du PHP Slide 43

Les tableaux associatifs


Parcours dun tableau associatif
$personne = array(Nom => Csar, Prnom => Jules);

Exemple 1 :

Ici on accde directement aux lments du tableau comme


cest le cas pour les tableaux indexs

foreach($personne as $elem) { echo $elem; }

Exemple 2 :

Ici on accde simultanment aux cls et aux lments.


ENSA-Khouribga
Y. KHAMLICHI

foreach($personne as $key => $elem) { echo $key : $elem; }

Dveloppement Web 1
Les bases du PHP Slide 44

Les tableaux associatifs

Quelques fonctions

array_count_values($tab) : retourne un tableau associatif contenant les valeurs du tableau $tab comme cls et leurs frquence comme valeur (utile pour valuer les redondances) array_keys($tab) : retourne un tableau contenant les cls du tableau associatif $tab array_values($tab) : retourne un tableau contenant les valeurs du tableau associatif $tab array_search($val,$tab) : retourne la cl associe la valeur $val

Llment dun tableau peut tre un autre tableau. Les tableaux associatifs permettent de prserver une
structure de donnes.
ENSA-Khouribga
Y. KHAMLICHI

Dveloppement Web 1
Les bases du PHP Slide 45

Les tableaux associatifs


Quelques fonctions reset($tab) : place le pointeur sur le premier lment current($tab) : retourne la valeur de llment courant next($tab) : place le pointeur sur llment suivant prev($tab) : place le pointeur sur llment prcdant each($tab) : retourne la paire cl/valeur courante et avance le pointeur

Exemple :

$colors = array(red, green, blue); $nbr = count($colors); reset($colors); for($i=1; $i<=$nbr; $i++) { echo current($colors).<br>; next($colors); }
Y. KHAMLICHI

ENSA-Khouribga

Dveloppement Web 1
Les bases du PHP Slide 46

Les fonctions
Une fonction est un sous-programme qui permet d'effectuer un ensemble
d'instructions par simple appel dans le corps du programme principal. Comme tout langage de programmation. PHP permet lcriture des fonction. La syntaxe est la suivante:
function ma_fonction($argument1, $argument2,) { Liste des instructions; Return ($valeur_de_retour); }

Une fonction peut ne pas avoir de valeurs dentre (arguments) ou encore

retourner de valeurs (le cas dune fonction daffichage de message derreur).

ENSA-Khouribga

Y. KHAMLICHI

Dveloppement Web 1
Les bases du PHP Slide 47

Les fonctions
Variable locale et variable globale dune fonction Toute variable dclare au sein dune fonction est de porte locale de cette fonction. Elle nest pas reconnue dans le reste du programme. global permet de travailler sur une variable de porte globale au programme. Le tableau associatif $GLOBALS permet daccder aux variables globales du script ($GLOBALS[var] accde la variable $var).

Exemple :
function change() { global $var; // dfinit $var comme globale $GLOBALS[toto] ++; // incrmente la variable globale $toto $var++; // cela sera rpercut dans le reste du programme }

ENSA-Khouribga

Y. KHAMLICHI

Dveloppement Web 1
Les bases du PHP Slide 48

Les fonctions
On peut donner une valeur par dfaut aux arguments lors de la
dclaration de la fonction. Exemple :

function Set_Color($color=black) { global $car; $car[color] = $color; }

Forcer le passage de paramtre par rfrence Exemple :


function change(&$var) { // force le passage par rfrence $var += 100; // incrmentation de +100 } $toto = 12; // $toto vaut 12 change($toto); echo $toto; // $toto vaut 112

ENSA-Khouribga

Y. KHAMLICHI

Dveloppement Web 1
Les bases du PHP Slide 49

Les fonctions
Mme sans paramtre, un entte de fonction doit porter des parenthses (
). Les diffrents arguments sont spars par une virgule et le corps de la fonction est dlimit par des accolades { }.

Quelques exemples :
function afficher($str1, $str2) { // passage de deux paramtres echo $str1, $str2; }

function bonjour() { echo Bonjour; }


function GetColor() { return black; }

// passage daucun paramtre

// retour dune variable

ENSA-Khouribga

Y. KHAMLICHI

Dveloppement Web 1
Les bases du PHP Slide 50

Les fonctions
En version 3 du PHP (version interprte), une fonction ne peut
tre appele quaprs sa dfinition. En version 4 et 5 (compiles) une fonction peut tre appele avant sa dfinition.

Exemple :
function f1() { // dfinition de la fonction f1 echo fonction f1; } f1(); // appel de la fonction f1 dfinie plus haut f2(); // appel de la fonction f2 pas encore dfinie function f2() { // dfinition de la fonction f2 echo fonction f2; }

Cet exemple affichera : fonction f1fonction f2!.


ENSA-Khouribga
Y. KHAMLICHI

Dveloppement Web 1
Les bases du PHP Slide 51

Les fonctions
Il est possible de faire retourner plusieurs valeurs dune fonction
en utilisant les tableaux ayant pour lments les variables retourner. Dans lappel de la fonction, il faudra alors utiliser la procdure list() qui prend en paramtre les variables qui ont doit affecter les valeurs retournes. On affecte list() le retour de la fonction.

Exemple :
function trigo($nbr) { return array(sin($nbr), cos($nbr), tan($nbr)); // retour dun // tableau } $r = M_PI; list($a, $b, $c) = trigo($r); /* affectation aux variables $a,$b et $c des lments du tableau retourn par la fonction trigo */

ENSA-Khouribga

Y. KHAMLICHI

Dveloppement Web 1
Les bases du PHP Slide 52

Les inclusions
On peut inclure dans un script PHP le contenu dun autre fichier. require insert dans le code le contenu du fichier spcifi mme si ce nest
pas du code php. ( quivalent au prprocesseur #include du C )

Syntaxe:
require(fichier.php);

include value et insert chaque appel (mme dans une boucle) le


contenu du fichier pass en argument.

Syntaxe:
include(fichier.php);

Les inclusions sont trs utiles lors de lappel dune base de donne. Les
paramtres de connexions sont stocks sur un fichiers part.

ENSA-Khouribga

Y. KHAMLICHI

Dveloppement Web 1
Les bases du PHP Slide 53

Arrt prmatur
Pour stopper prmaturment un script, il existe deux fonctions. die arrte un script et affiche un message derreur dans le navigateur. Exemple :
if(mysql_query($requette) == false) die(Erreur de base de donnes la requte);

exit larrte aussi mais sans afficher de message derreur. Exemple :


function mafonc() { exit(); }

Ces fonctions stoppent tout le script et pas seulement le bloc en cours.

ENSA-Khouribga

Y. KHAMLICHI

Dveloppement Web 1
Les bases du PHP Slide 54

Les sessions

Les sessions permettent le passage des variables


(variables de session) dune page une autre tout au cours de la visite du site web.

Les variables de session ne sont pas visibles dans lURL


et peuvent tre de types diffrents (tableau, float).

Cette mthode permet de conserver les paramtres de


connexions dun visiteur et conserver ses choix (sauvegarder son panier e-commerce par exemple)

Les informations de sessions sont conserves en local sur

le serveur tandis quun identifiant de session est post sous la forme dun cookie chez le client.
Y. KHAMLICHI

ENSA-Khouribga

Dveloppement Web 1
Les bases du PHP Slide 55

Les sessions
Fonctions
session_start() : dmarre une session session_destroy() : dtruit les donnes de session et ferme la session

session_start() doit tre prsente sur toutes les pages qui

utilisent les variables de sessions et doit tre dclare avant tout envoie au navigateur du client.

Une variable de session est manipule de la faon suivante:


$_SESSION[nom_de_la_variable]

Exemple:
$_SESSION[etablissement]=ENSA;
ENSA-Khouribga
Y. KHAMLICHI

Dveloppement Web 1
Les bases du PHP Slide 56

Variables denvironnement
Les variables d'environnement sont, comme leur nom l'indique, des
donnes permettant au programme d'avoir des informations sur son environnement. L'environnement dans le cas du script PHP est :

Le client Le serveur Les variables denvironnement permettent d'avoir des informations sur
le type de serveur, lemplacement de la page en cours (larborescence sur le serveur), la date laquelle le script a t appel, l'adresse IP du client, nom du hte client, le type de navigateur du client, la page qui a renvoy le navigateur au script en cours

Lexcution de la fonction phpinfo() permet de lister les variables


denvironnement supports par le serveur ENSA-Khouribga
Y. KHAMLICHI

Dveloppement Web 1
Les bases du PHP Slide 57

Variables denvironnement
Quelques variables $HTTP_HOST: nom d'hte de la machine du client $HTTP_REFERER: URL de la page qui a appel le script PHP (cette variable permet de connatre le site web qui a renvoy le client sur la page en cours: le moteur de recherche utilis par exemple) $HTTP_USER_AGENT: permet d'avoir des informations sur le type de navigateur utilis par le client, ainsi que son systme d'exploitation. $REMOTE_ADDR: contient ladresse IP du client appelant le script $DOCUMENT_ROOT: chemin de la page en cours sur le serveur $SERVER_ADDR: contient ladresse IP du serveur $DATE_GMT: date et heure actuelle au format GMT $DATE_LOCAL: date et heure actuelle au format local

Pour afficher la valeur de la variable denvironnement: echo getenv(nom_de_la_variable)


ENSA-Khouribga
Y. KHAMLICHI