Anda di halaman 1dari 89

Langage PHP – Intro (1)

¾ PHP : Personal Home Pages


¾ Officiellement : PHP Hypertext Preprocessor
¾ Langage de programmation disponible pour
différents systèmes d’exploitation .
¾ Logiciel Open Source : Libre de droit.
Langage PHP – Intro (2)

¾ Langage de scripts coté Serveur.


¾ Langage interprété.
¾ On dit : scripts PHP ou programmes PHP
¾ Permet de générer du code HTML et l’envoie au
client.
Caractéristiques (1)

¾ Très proche du Langage C


¾ S’intègre au cœur d’une page HTML
¾ Les instructions PHP n’apparaissent pas dans le
résultat final.
Caractéristiques (2)

¾⇒ Aucun moyen d’accéder à partir du client au


code source.
¾ Les autres langages : On écrit le programme pour
afficher (en sortie) une page HTML.
¾ PHP : On écrit une page HTML avec du code
inclus.
Que peut faire PHP ? (1)
¾ Collecte les données
¾ Génère dynamiquement des pages Web
¾ Envoie / Reçoit des cookies.
¾ Ila des supports de services utilisant les
protocoles : IMAP, SNMP, POP3, HTTP,

Que peut faire PHP ? (2)
¾ Interactionavec d’autres protocoles en
ouvrant des connexions vers divers ports
TCP/IP
¾ Il a un ensemble d’outils important :
manipulation et génération d’images,
traitement de fichiers, création de PDF, …
Que peut faire PHP ? (3)
¾ Supporte un grand nombre de BD :
9 MySQL
9 dBase
9 FilePro
9 Informix
9 Interbase
9 mSQL
9 ODBC
9 Oracle
9 Unix dbm, …
Avantages de PHP (1)

¾ Facilite
le développement de sites Web
dynamiques et interactifs.
¾ Réponse simple et claire.
¾ Langage souple / syntaxe classique et pratique.
¾ Instructions connues.

¾ S’appuie sur des standards.

¾ Raccourcis d’utilisation.
Avantages de PHP (2)
¾ Déclaration non nécessaire des variables.

¾ Système de conversion assuré par le moteur PHP.

¾ Bibliothèque
riche : écriture d’algorithmes
complexes en quelques lignes.
¾ Fonction de découpage de chaînes de caractères.
¾ Latâche d’interprétation des commandes
déléguée à un composant appelé moteur.
Avantages de PHP (3)
¾ Le moteur est installé sur le serveur
¾ Le moteur PHP est capable de (∀syst. d’expl.) :
• Lire / transformer une chaîne de caractères.
• Créer / modifier fichiers (txt ou bin.)
¾ Donner infos systèmes
¾ Maintenance facile /réutilisable
Insertion du code PHP
¾ On insère du code PHP en pleine page HTML :
• <?PHP …?>

• <? …?> il faut l’activer sur certains systèmes


• <Script language=«PHP »> …</script>

• <% …%> il faut aussi l’activer


Interprétation du code PHP
¾ Toutbloc de ce genre sera interprété puis un code
HTML en sortie (selon instr.) est généré à la
place des instructions puis envoyé au client.
¾ Tout autre bloc est envoyé sans retouches au
client.
¾ Encas d’erreurs (lexicale ou syntaxique), un
message est intégré dans le code de sortie et
exécution interrompue.
Minimum de PHP
¾ Sortie : instruction echo
¾ Permet de faire sortir du code HTML vers la page.
¾ Exemple :
echo "chaîne de caractères";

¾ PHP tient compte de la casse.


Exemple : (sur le serveur)
<HTML>
<HEAD>
<TITLE> test </TITLE>
</HEAD>
<BODY>
<?php echo(“3éme Li Acad”); ?>
</BODY>
</HTML>
Exemple : (code envoyé au client)
<HTML>
<HEAD>
<TITLE> test </TITLE>
</HEAD>
<BODY>
3éme Li Acad
</BODY>
</HTML>
Commentaires PHP
¾ // pour une ligne

¾ Sur plusieurs lignes : commence par /* et se


termine par */
¾ # comme dans le Shell Unix (sur une ligne)

¾ Rmq : Il faut éviter d’imbriquer les commentaire


Séparateur d’instructions

¾ Le point virgule : ;
¾ Sauf la dernière instruction, la marque de fin de
script (par exemple : ?>) marquera la fin de la
dernière instruction
Variables PHP (1)
¾ PHP n’est pas un langage fortement structuré:
• Pas de partie déclarative bien définie.
• Aucune déclaration n’est nécessaire.

¾ Une
variable est toujours précédée par le
symbole $ : $x $txt1 …
Variables PHP (2)
¾ Types supportés :
• Scalaires : booléens, entiers, réels (nb
flottants), chaînes de caractères, …
• Composés : tableaux, objets
• Spéciaux : NULL

¾ Le type n’est pas déclaré, le moteur décide selon


le contexte
Variables PHP (3)
¾ Pourcréer une variable, il suffit de lui affecter
une valeur.
¾ Parla suite, devient accessible et continuera à
exister jusqu’à la fin.
¾ Suppression d’une variable ⇔ Libération espace
mémoire.
Unset($idf_var)
Type Booléén

¾ bool
• TRUE, FALSE

• 0 ou 0.0 ou "" ou "0" ou NULL ⇔ false

• Tableau vide, objet vide ⇔ false


• Tout autre chose même -1 ⇔ true
Type Entier
¾ Integer / int
• Décimal base 10: $x=141; $y=-141;
• Octal (base 8): $x=0215;
• Hexadécimal (base 16) : $x=0x8D;
• En cas de dépassement de capacité sera
considéré comme réel
• false⇔0 et true⇔1
Types Réel et Chaîne
¾ Réels : (float / double / real)
$pi = 3.14;

¾ Chaînes de caractères : (string)


$chn="3 Li Acad"; $c='Bienvenue';

¾ Plusdétails seront données dans la partie


gestion des chaînes de caractères.
Tableaux en PHP (1)
¾ Les tableaux dans PHP sont identifiés par un
nom qui doit respecter la syntaxe d’un
identificateur.
¾ Chaque entrée dans le tableau (indice d’un
élément) est appelée clé.
¾ Chaque valeur associée à une entrée (élément) est
appelée valeur.
Tableaux en PHP (2)
¾ On dit que les tableaux en PHP sont associatifs
(clé, valeur)
¾ La clé d’un tableau peut être entière (positif) ou
chaîne de caractères
$tab[‘nom’]="Mohamed"; $tab[3]=‘Ali’;

¾ tab est le nom du tableau, nom et 3 sont 2 clés

¾ Mohamed est la valeur associée à la clé nom et


Ali est la valeur associée à la clé 3.
Création d’un tableau (1)
¾ Un tableau peut être créé directement par
affectation :
$tab[cle1] = valeur1;
$tab[cle2] = valeur2;

¾ La clé peut être vide :


$tab[]=val; // insère val dans le
// tableau à la 1ère clé libre.
Création d’un tableau (2)
¾ Un tableau peut être créé par la fonction array :
$tab = array(cle1=>val1, cle2=>val2, …,
clen=>valn);

¾ Valeur peut être vide :


$tab = array(val1, val2, …, valn);

¾ Ceci est équivalent à:


$tab[0] = val1; $tab[1] = val2;
…; tab[n-1] = valn;
Matrices
¾ On peut aussi définir des tableaux à 2 ou
plusieurs dimensions.
¾ Ilfaut considérer chaque élément comme un
autre tableau.
$tab[‘nom’][1] = "Mohamed";
$tab[‘nom’][2] = "Ali";

¾ Remarque : A tout moment, on peut supprimer


des éléments d’1 tableau : unset($tab[cle]);
Les références

¾ Permet d’attribuer un autre nom à une variable à


l’aide du symbole &, Par exemple :
$a=1; $b=&$a; // b et a : même chose
echo($a) // affiche 1
echo($b) // affiche aussi 1
$a = 2;
echo($b); // affichera 2
Variables dynamiques
¾ En PHP, le nom d’une variable peut être à son
tour variable.
$x="y"; $$x=1; //c’est la variable y
//qui aura la valeur 1!!!
$z="tab"; ${$z}[1] =2; //c’est le 1er
//élément de tab qui aura la valeur 1
$vec[1] = "u"; $vec[2] = "v";
${$vec[1]} = 3; // c’est la variable
//u qui aura la valeur 3
Les Constantes

¾ Variables d’environnement : Commencent par $_


• Exemple : $_SERVER["SEVER_NAME"]

¾ Constantes définies par l’utilisateur :


define("idf_cst", "val_cst"); Par
exemple :
• define("PI", "3.14");
• Echo(PI); //affichera 3.14
Données des formulaires (1)

¾A un champs du formulaire :
• qui s’appelle nom_champ,

• PHP associe une variable $nom_champ.

¾ Lavaleur envoyée par l’utilisateur sera stockée


dans cette variable.
Données des formulaires (2)
¾ Les valeurs des champs d’un formulaire peuvent
être trouvées dans les tableaux :
• $HTTP_POST_VARS et $HTTP_GET_VARS

¾ On peut les trouver aussi dans les tableaux :


• $_POST et $_GET

¾ C’est selon la méthode d’envoi du formulaire.


Données des formulaires (3)
¾ Chaque clé du tableau est le nom d’un champ.
¾ Chaque valeur associée à une clé est la valeur du
champ telle qu’elle a été remplie, cochée, choisie
ou sélectionnée par l’utilisateur.
¾ Il
faut vérifier que register_globals n’est pas à
Off dans le fichier de configuration php.ini
Opérateurs PHP (1)
¾ L’affectation =
$a = 2;
$b = "ceci est un exemple";
$c = ($b = 4) = + 5; //4→b et 9→a
$tab[$i] = 3.14;
Opérateurs PHP (2)

¾ Arithmétiques :
•+: Addition
•-: Soustraction
•*: Multiplication
•/: Division (réelle ou entière selon type des
opérandes)
•%: Modulo
Opérateurs PHP (3)
¾ Opérateur de chaînes : . Pour la concaténation
¾ Comparaison :
• == : égalité
• === : égalité et même type
• != : différents
• > : supérieur strict >= : supérieur ou égal
• < : inférieur strict <= : inférieur ou égal
Opérateurs PHP (4)
¾ Logiques :
• and &&
• Or ||
• xor

• Not !
Opérateurs PHP (5)
¾ Bits :
•&: et
• | : ou
• ^ : ou exclusif «xor»
• ~ : non
• << : décalage à gche d’1 bit (multiplication par
2)
• >> : décalage à droite d’1 bit (div. entière par 2)
Expressions abrégées
¾ $x = $y = 2; //affecte 2 à x et y en même temps

¾ $x++; ++$x; // incrémentation

¾ $x--; --$x; // décrémentation

¾ $y=$x++; //affectation de la valeur de x à y puis


//incrémentation de x
¾ $y=--$x; // décrémentation de x puis affectation
//de la valeur de x à y
¾ $x .= "Licence"; //concaténation de Licence à
//la chaîne dans x
Conversion de variables (1)
¾ Lemoteur PHP assure automatiquement la
conversion comme l’illustre l’exemple suivant :
$x = 1 + 2.5; // de type réel, x = 3.5
$x = 1 + "2.5"; // de type réel, x = 3.5
$x = 1 + "abcd"; // de type entier, x = 1
$x = 1 + "a2"; // de type entier, x = 1
$x = 1 + "10 cm"; // de type entier, x = 11
$x = 1 + "10.0 cm"; // de type entier, x = 11
Conversion de variables (2)
¾ On
peut forcer le type d’une variable de deux
manières différentes:
settype($var, "type");
(type) $var;
¾ Où type peut être :
• int, integer : pour les entiers.
• bool, boolean : pour les booléens.
• real, float, double : pour les réels.
• array : pour les tableaux.
• object : pour les objets.
Conversion de variables (3)
$x = 3.6; settype($x, "int"); // x aura la valeur 3
$a = (float) 8/3; // met dans a la valeur de la division
//réelle de 8 par 3
¾ On peut tester le type d’une variable à l’aide :
$t=gettype($var); //retourne dans $t le type de $var
//sous forme d’une chaîne de car
¾ On peut aussi utiliser les fonctions booléennes suivantes :
is_long($x); is_double($x); is_string($x);
is_array($x); is_object($x);

¾ A tout moment, on peut vérifier l’existence d’une variable


à l’aide de la fonction booléenne : isset($var);
Chaînes de caractères (quottes)

¾ Entre guillemets simples : ‘ et ‘


¾ Permet d’afficher le texte tel qu’il est.
$x=2; echo‘C\’est un exemple $x’;
// Donnera : C’est un exemple $x
¾ On utilise le caractère Antislash (\) pour précéder
les caractères ‘ et \. Pour les afficher et éviter des
erreurs d’interprétation.
Chaînes de car. (guillemets)
¾ Entre guillemets doubles (" et " )
¾ Permet d’afficher le texte ainsi que le contenu des
variables et les caractères spéciaux :
$x=2;
echo"C’est un \"exemple \" :\n $x";
//Ceci donnera :
// C’est un "exemple" :
// 2
¾ \n représente le saut de ligne.
Chaînes de car. (HereDoc)
¾ La syntaxe HereDoc :
<<< identificateur
Chaîne sur une ou plusieurs lignes
identificateur;

¾ Secomporte de la même façon qu’une chaîne à


guillemets doubles.
¾ Permet d’afficher le contenu des variables.
¾ Permet d’écrire la chaîne sur plusieurs lignes.
Gestion des chaînes de car. (1)
¾ On peut récupérer la longueur d’une chaîne :
$ln = strlen($ch);

¾ On peut comparer deux chaînes :


strcmp($ch1, ch2);

¾ Onpeut accéder au ième caractère d’une chaîne


$ch :
$c1 = $ch{$i-1};
$c2 = $ch{0}; // donne dans c2 le 1er
//caractère de la chaîne
Gestion des chaînes de car. (2)
¾ Onpeut traiter les chaînes de caractères àl’aide de
divers fonctions dont :
str_replace($ch1, $ch2, $ch3);
// remplace dans $ch3 //toute occurrence de
//$ch1 par $ch2
addslashes($ch); // ajoute \ devant tout
//caractère spécial dans $ch
stripslashes($ch); // supprime les \qui
//précèdent les caractères spéciaux
Les expressions régulières (1)
¾ On donne chaque caractère et le nbre d’occurrences.
[] : permet de définir l’ensemble auquel appartient
un caractère.
{} : permet de définir le nombre d’occurrences du
caractère précédent.
^ : indique le début d’une chaîne.
$ : indique la fin d’une chaîne.
[a] ou a : S’il s’agit exactement du caractère a.
[abc] : soit le caractère a soit b soit c.
[a-c] : du caractère a jusqu’au caractère c
Les expressions régulières (2)
[a|b|c] : Même chose que les 2 précédentes (ou)
[0-9] : Caractère numérique.
[a-z] : Caractère alphabétique minuscules.
[A-Z] : Caractère alphabétique majuscules.
[a-zA-Z0-9] : Caractère alphanumérique.
[\x09] : Espacement ou tabulation
[\t\v\f] : Tout type d’espace
. : N’importe quel caractère
Les expressions régulières (3)
? : exactement une occurrence
* : 0 ou plusieurs occurrence
+ : au moins une occurrence
{n} : exactement n occurrences
{n,m} : au - n occurrence et au + m occurrences
{n,} : au moins n occurrences

¾ Exemple une date au format : jj-mm-aaaa


^[0-9]{2}-[0-9]{2}-[0-9]{4}$
¾ Exemple identificateur :
^[a-zA-Z]?-[a-zA-Z0-9]*$
Gestion des RegExp (1)
¾ Ilexiste plusieurs fonctions de traitement des
expressions régulières :
ereg("exp_reg" , $ch); : vérifie la
correspondance entre l’expression régulière et
la chaîne $ch. Retourne TRUE ou FALSE.
eregi("exp_reg" , $ch); : même chose
que ereg sauf que celle là tient compte de la
casse.
Gestion des RegExp (2)
ereg_replace("exp_reg" , $ch1, $ch2); :
remplace dans $ch2 toute occurrence d’1 chaîne
vérifiant l’expression régulière par la chaîne
définie dans $ch1.
$tab=split("exp_reg" , $ch); : découpe $ch
en plusieurs sous-chaînes par rapport aux
caractères définis par l’expression régulière.
Chaque sous chaîne est sauvegardée dans le
tableau $tab.
Gestion des tableaux (1)
¾ Le PHP dispose de plusieurs fonctions de gestion
et traitement des tableaux :
sort($tab) : trie un tableau par rapport aux
valeurs dans l’ordre.
rsort($tab) : trie un tableau par rapport aux
valeurs dans un ordre inverse.
ksort($tab) : trie un tableau par rapport aux
clés dans l’ordre.
Gestion des tableaux (2)
krsort($tab) : trie un tableau par rapport aux
clés dans un ordre inverse.
reset($tab) : remet le pointeur au 1er élément
du tableau.
end($tab) : positionne le pointeur sur le
dernier élément du tableau
$nb=sizeof($tab); : retourne le nombre
d’éléments du tableau $tab
Gestion des tableaux (3)
$element= each($tab); : donne la
combinaison clé, valeur de l’élément actuel de
$tab puis pointe vers l’élément suivant.
$element[0] contient la clé et $element[1]
contient la valeur.
list($cle, $valeur) = each($tab); :
list est associée à each afin de récupérer la
clé actuelle et sa valeur dans deux variables
différentes.
Bloc d’instructions
¾ Pourdélimiter un bloc d’instructions on utilise
comme dans le langage C les accolades.
•{: pour marquer le début du bloc.
•}: pour marquer la fin du bloc.
¾ Sile bloc ne contient qu’une seule instruction, on
peut se passer des accolades.
Instruction conditionnelle if
¾ if (expression_logique)
bloc_instructions

¾ Exemple :
If ($x>0) $x--;
If ($x<=0) {
$x++;
echo $x; }
Instr. conditionnelle if else
¾ if (exp_logique) bloc_instructions_1;
else bloc_instructions_2;

¾ Exemple :
If ($x>0) $x--; else $x++;
If ($x<=0) { $x++; echo $x; }
else {$x--; echo $x; }
Instruction conditionnelle
if elsif (1)

¾ Pouréviter les if imbriqués on a l’instruction


suivante :
if (cond_1) { bloc_instruction_1;}
elsif(cond_2) {bloc_instructions_2;}

elsif(cond_n) {bloc_instructions_n;}
else {bloc_instructions_n+1;}
Instruction conditionnelle
if elsif (2)

• Si cond_1 est vérifiée, il exécute le bloc


bloc_instructions_1

• Si les conditions de cond_1 à cond_i ne sont pas


vérifiée et cond_i+1 est vérifiée, il exécute
bloc_instructions_i+1

• Si les n conditions ne sont pas vérifiées, il exécute


le bloc d’instructions qui suit le else
Instruction conditionnelle
abrégée
$var = Expression ? Val1 : Val2;

¾ Équivalente à:
If (Expression)
{$var = Val1;}
else
{$var = Val1;}
Instruction conditionnelle
switch case
switch($var) {
case val_1 : bloc_instr_1; break;
...
case val_n : bloc_instr_n; break;
default : bloc_instr_n+1;
}
Boucle while
¾ Tant que la condition est vérifiée il exécutera les
instructions.
while(condition) {
inst_1;
inst_2;

inst_n;
}

¾ Avec une seule instruction, on peut enlever les


accolades
Boucle do while
¾ Exécute les instructions puis évalue la condition. Si
elle est vérifiée, il continue sinon il s’arrête.
do {
inst_1;
inst_2;

inst_n;
} while(condition);

¾ Avec une seule instruction, on peut enlever les


accolades
Boucle for
for (expr1; expr2; expr3) {
inst1;
inst2;

instn;}

¾ Exécute expr1 avant de commencer la boucle, teste


expr3 avant chaque itération puis exécute expr2 à
la fin de chaque itération.
¾ Avec une seule instruction, on peut enlever les
accolades.
Boucle foreach (1)

¾ Pour parcourir les tableaux :


foreach($idf_tab as $val) {
Inst_1;
Inst_2;

Inst_n;}

¾ Permet
de parcourir toutes les valeurs du tableau
$idf_tab.
Boucle foreach (2)
¾ Commence par pointer sur le premier élément.
¾A chaque itération sauvegarde la valeur de
l’élément actuel du tableau dans $val.
¾A la fin de chaque itération pointe sur l’élément
suivant dans le tableau
¾ Setermine après avoir passé en revue tous les
éléments du tableau.
¾ Avec une seule instruction, on peut enlever les
accolades.
Boucle foreach (3)

¾ Il existe une autre forme de foreach :


foreach($idf_tab as $cle=>$val) {
Inst_1;
Inst_2;

Inst_n;}

¾ Même chose que la première forme. Sauf qu’elle


sauvegarde en plus la clé de l ’élément actuel dans
$cle.
Les boucles - Suite

¾ Comme dans le langage C, on peut utiliser les deux


instruction break et continue dans les boucles :
break; //permet de sortir de la boucle
sans vérification de la condition
d’arrêt.
continue; //permet d’abandonner
l’itération courante et passer
directement à l’itération suivante.
Définition d’une fonction (1)

¾ Définition de la fonction :
function idf_fonct($arg1,$arg2,…,argn){
inst_1;
inst_2;

inst_n;
return $var; }
Définition d’une fonction (2)

¾ L’instruction return permet à la fonction de


retourner une valeur.
¾ return peut être insérée n’importe où dans la
fonction.
¾ On peut avoir une fonction sans arguments :
function idf_fct() { instr…}

¾ On peut avoir une fonction qui ne retourne pas de


valeurs (⇔ procédure)
Retourner plusieurs valeurs

¾ On utilise un tableau comme variable :


return $tab;
• $tab doit être de type tableau.
¾ On peut créer ce tableau au moment de l’utilisation
de return :
return array($cle_1=>$val_1, …,
$cle_n=>$arg_n);
return array($cle_1, …, $cle_n);
Paramètres par défaut

¾ Un argument peut avoir une valeur par défaut lors


de la définition de la fonction :
function f ($x, $y, $z=1) {
instructions…}

¾ Lesarguments définis par défaut doivent être


derniers dans la liste des arguments.
Appel à une fonction
¾ L’appel à une fonction doit être toujours fait après
sa définition:
$idf_var= idf_fonction(arg1, …argn);
$idf_fonction(arg1, …argn);

¾ Lors
de l’appel les arguments sont passés des
manières suivantes :
• Par valeurs
• Par références : de façon permanente ou non
permanente
Passage d’arguments par valeurs

¾ Passage par valeurs est un passage ordinaire:


• Il n’y a rien de spécial à rajouter lors de la
définition.
• Lors de l’appel, on met des valeurs ou des
variables comme arguments
• Les variables sont en entrée.
Passage d’arguments par
références (1)
¾ Lepassage par références rend les variables
transmises en arguments en entrée/sortie.
¾ Passage par références non permanent se fait lors de
l’appel à la fonction.
• Il n’y a rien de spécial à rajouter lors de la
définition.
• Lors de l’appel, on fait référence à la variable
transmise en argument en la précédant de &.
Passage d’arguments par
références (2)

¾ Passage par références permanent se fait lors de la


définition de la fonction.
• Lors de la définition, on rajoute précède la
variable argument de &.
• Il n’y a rien de spécial à rajouter lors de l’appel.
Passage d’arguments - Exemple
function f1($x) { $x++;}
function f2(&$y) { $y++;} /*déf. d’1
passage tjrs par références: permanent.*/
//passage par valeur
$a=1; f1($a); echo $a; /*affichera 1. a
en entrée*/
//passage par références non permanent
$a=1; f1(&$a); echo $a; /*affichera 2. a
en entrée/sortie*/
$a=1; f2($a); echo $a; /*affichera 2. a
en entrée/sortie*/
Nombre illimité d’arguments (1)
¾ Onpeut utiliser un tableau comme argument. Par
exemple :
function f($tab) {

$nb_arg = count ($tab);
// Pour récup. nbre d’argmts.

foreach ($tab as $arg) {
… //Pour récup. tous les arguments
}
}
Nombre illimité d’arguments (2)
¾ L’autrefaçon pour avoir un nombre illimité de
paramètres est de définir une fonction sans
arguments.
¾ On utilise certaines fonctions PHP pour traiter les
arguments quelque soit leur nombre.
¾ On appelle ces fonctions PHP à l’intérieur du corps
de la fonction.
Nombre illimité d’arguments (3)

¾ Pour retourner le nombre d’arguments passés à


cette fonction :
$nb_arg=func_num_args();

¾ Pour retourner la valeur du paramètre numéro i+1 :


$arg=func_get_arg($i);

¾ Pourretourner toutes les valeurs des paramètres


dans un tableau :
$tab_arg=func_get_args();
Variables globales/ locales
¾ Variablelocale : Par défaut la variable utilisée dans
une fonction est locale. Sa durée de vie se limite au
temps d’exécution de la fonction ⇒ local $var;
¾ Variable globale : visible et reconnue dans
l’intégralité du code PHP ⇒ global $var;
$GLOBALS["var"];

¾ Variablestatique : propre à la fonction, mais elle


est reconnue durant toute l’exécution du code PHP.
Garde la valeur lors du prochain appel ⇒ static
$var;
Variables locales - Exemple
$a = 1;
function f1()
{
echo $a;
}
f1();
¾ N’afficherien car il s’agit de la variable a de la
fonction f1 qui ne contient aucune valeur et non pas
de a du code principal.
Variables globales – Exemple1
$a = 1;
function f2() {
global $a, $b;
$b = $a++;
}
f2();
echo$a;
echo$b;
// Affichera 2 pour le a et 1 pour le b
Variables globales – Exemple2
$a = 1;
function f3() {
$GLOBALS["b"] = $GLOBALS["a"]++;
}
f3();
echo$a;
echo$b;
//Affichera 2 pour le a et 1 pour le b
Variables statiques – Exemple
$a = 1;
function f4() {
static $a=2;
$a++;
echo $a;
}
f4(); // Affichera 2
f4(); // Affichera 3
Fonctions dynamiques (1)
¾ Comme on a des variables dynamiques en PHP, on a aussi
des fonctions dynamiques.
¾ On peut sauvegarder le nom d’une fonction dans une
variable
$ch="nom_fonction";
$ch(liste_arguments);

nom_fonction(liste_arguments);
¾ On peut même utiliser un tableau contenant les noms de
différentes fonctions.
Fonctions dynamiques (2)

¾ Onpeut même utiliser un tableau contenant les


noms de différentes fonctions.
$tab_fct=array("nom_fonction_1" , …,
"nom_fonction_1");
$tab_fct[i-1](liste_arguments);

nom_fonction_i(liste_arguments);

Anda mungkin juga menyukai