SlideShare une entreprise Scribd logo
PHP ou le web dynamique
généralités écrit par Ramsus Lerdorf en 1994 pour gérer sa page perso  actuellement stable en version 5 (5.3) et la version 6 est imminente  le P de LAMP (Linux Apache MySQL PHP)  Damien Seguy pionnier français dans la promotion du langage PHP ( nexen.net )  écrit en de C et historiquement basé sur des bibliothèques Perl  Le langage proprement dit est Zend Engine, PHP (Hypertext Preprocessor) est la version embedded de Zend Engine  par convention l'extension est .php (éventuellement .php4, .php5 si plusieurs version cohabitent) PHP 4 n'est plus maintenu depuis fin 2007  la doc officielle en français  http://php.net/manual/fr/index.php
php cli VS mod_php 2 versions php php cli en ligne de commandes Chemin à mettre dans la variable d’environnement $PATH mod_php  Permet d’embarquer un interpréteur php dans les process fils du démon httpd 2 fichiers de configuration de php.ini N.B certains projets utilisent maintenant le même interpréteur (UwAmp)
php.ini Quelques directives register_globals: rend les variables GET, POST, de COOKIE et de SESSION directement accessibles (déconseillé!) post_max_size: taille maximale d’une requête en méthode post upload_max_fliesize: taille maximale des fichiers ulpoadés memory limit: taille de mémoire maximale allouée à PHP extension_dir: spécifie le répertoire dans lequel PHP doit chercher des extensions externes à charger  extension: quelles extensions doivent être chargées
Les extensions php Quelques extensions simpleXML (inclus en PHP5): fournit des outils très simples et faciles à utiliser pour convertir du XML en un objet qui peut être manipulé avec ses propriétés et les itérateurs de tableaux.  SQLite (inclus en PHP5): fait l'interface avec le moteur de base SQLite Embeddable SQL Database Engine (ne nécessite pas l'installation d'un serveur de BDD) MySQL: permet d'accéder aux bases de données MySQL  Pcre: permet la compatibilité avec les expressions régulières Perl
Un standard supporté par de nombreux serveurs http IIS, Netscape, Roxen, IPlanet multiplateforme : *nix et windows ( wamp ,  EasyPHP ,  xampp )  proposé massivement par les hébergeurs
Le web statique
Le web dynamique typique
Le langage Dit de type embedded : le code PHP s'insère au milieu du code HTML  <?php = début de portion de code PHP ?> = fin de portion de code PHP Chaque instructions se termine par le caractère  ;   commentaire //  commente une ligne entière  /* … */ commente une portion de code PHP  PHP est sensible à la casse (il y a un distinction entre les minuscules et les majuscules)  TRUE (1) et FALSE(0) sont deux contantes prédéfinies
Hello world!! Côté serveur <html>   <head>     <title>My First PHP Script</title>   </head>   <body>     <p>         <?php echo &quot;Hello World&quot;;  ?>     </p>   </body> </html>
Version cgi (non embedded) <?php echo &quot;<html>&quot;; echo &quot;<head>&quot;; echo &quot;<title>My First PHP Script</title>&quot;; echo &quot;</head>&quot;; echo &quot;<body>&quot;; echo &quot;<p>Hello World</p>&quot;; echo &quot;</body>&quot;; echo &quot;</html>&quot;; ?>
Côté client <html>   <head>     <title>My First PHP Script</title>   </head>   <body>     <p>         Hello World     </p>   </body> </html>
Les constantes créer une constante define(&quot;MaConstante&quot;, 5); Tester si une constante existe defined(&quot;MaConstante&quot;); Appeler une constante echo MaConstante; //affiche 5
Les variables Toutes les variables commence par le caractère  $  suivi d'une lettre ou d'un  _ Le typage est implicite, il dépend de la valeur affectée  <?  $MonEntier=3; //est un entier $MonReel=1.23e-12; //est un float $MaChaine=&quot;Hello world!&quot;; // est un string $MonEntier=&quot;3&quot;;   // est un string ?>
Les types Boolean : Booléen  Integer : Entier  Réel : Double  String : Chaîne de caractères  Array : Tableau  Object : Objet  Tester le type d’une variable gettype($var); Typer explicitement settype($var,  &quot;type&quot;);
Opérations sur les variables Tester le type d’une variable gettype($var); Typer explicitement settype($var,  &quot;type&quot;);  Tester si une variable existe isset($var); Détruire une variable et libérer la mémoire qui lui était allouée unset($var); Tester si une variable est non affectée (i.e. =0 ou =&quot;&quot;) empty($var);
transtypage <?php $foo = 10;    // $foo est un entier $bar = (double) $foo;     // $bar est un double ?>  (int) , (integer)  - type entier  (bool) , (boolean)  -  booléen   (double) , (float) , (real)  - type double  (string)  - type chaîne de caractère  (array)  - type tableau  (object)  - type objet
Les strings les délimiteurs &quot;...&quot; toutes les variables contenues entre ces délimiteurs seront évaluées $MyColor=&quot;rouges&quot;; echo &quot;Mes souliers sont $MyColor&quot;; affiche  Mes souliers sont rouges caractères échappés   pour afficher le caractère   pour afficher le caractère $  amp;quot; pour afficher le caractère &quot;
Les strings les délimiteurs ‘...’ aucune des variables contenues entre ces délimiteurs ne sera évaluée $MyColor=&quot;rouges&quot;; echo 'Mes souliers sont $MyColor'; affiche  Mes souliers sont $MyColor caractères échappés   pour afficher le caractère  apos; pour afficher le caractère '
Les strings caractères non imprimables  nouvelle ligne   retour à la ligne   tabulation  spécificité &quot;&quot; sous windows  &quot;&quot; sous *nix &quot; &quot; sous mac
Fonctions d’affichage écrit sur la sortie standard print('hello '.$nom); echo(&quot;hello $nom&quot;); print('hello '.$nom);  écrit de manière formatée comme en C sur la sortie standard  printf(&quot;hello %s&quot;, $nom); écrit de manière lisible les variables complexes, notamment les tableaux et les objets print_r($tableau);
Opérateurs arithmétiques +  pour l'addition  -  pour la soustraction  *  pour la multiplication  /  pour la division  %  pour la division entière
Opérateurs d’affectation $y est affecté à $x  $x = $y  $y est additionné à $x $x += $y <=> $x = $x + $y $y est soustrait de $x  $x -= $y <=> $x = $x - $y $x est multiplié par $y  $x *= $y <=> $x = $x * $y $x est divisé par $y  $x /= $y <=> $x = $x / $y $y le reste de $x/$y est affecté à $x  $x %= $y <=> $x = $x % $y
Opérateurs de comparaisons égalité de $x et $y  $x == $y  égalités des valeurs et des types de $x et $y $x === $y $x est strictement inférieur à $y  $x < $y $x est strictement supérieur à $y  $x > $y $x est inférieur ou égal à $y  $x =< $y $x est supérieur ou égal à $y  $x => $y
Opérateurs logique & concaténation logique && et logique  || ou logique  ! négation  concaténation :  .  concatène deux chaines de caractères
Les tableaux le constructeur permettant de créer un tableau est array()  par défaut l'indexation d'un tableau commence à 0  $langages = array('français','english','deutsch'); il est possible de créer un tableau en lui affectant des valeurs  $langages[] = 'français'; $langages[] = 'english'; $langages[] = 'deutsch';
Les tableaux spécifier explicitement les indices $langages[0] = 'français'; $langages[1] = 'english'; $langages[2] = 'deutsch'; indexer des tableaux avec des chaînes de caractères (tableaux associatifs) $langages = array(  'fr' => 'français',  'en' => 'english',  'de' => 'deutsch‘ ); sans le constructeur  $langages['fr'] = 'français'; $langages['en'] = 'english'; $langages['de'] = 'deutsch';
Fonctions sur les tableaux compte les éléments du tableau $langages count($langages); renvoit TRUE si la chaîne caractère 'deutsch' est un élément du tableau in_array('deutsch', $langages); ajoute l'élémént 'chinese' à la fin du tableau (empile) array_push($langages, 'chinese'); renvoit le dernier élément du tableau (dépile)  array_pop($langages); il existe de nombreuses fonctions sur les tableaux
Structure conditionnelle if( $cpt > 0 && $cpt < 4 ) { echo $cpt. “est dans l’intervalle ]0;4[“; } elseif( $cpt >= 4 && $cpt < 10) { echo $cpt. “est dans l’intervalle [4;10[“; } else {  echo $cpt. “est dans l’intervalle ]10;+∞)“; }
structure de choix swicth($animal) {     case 'chien' :         echo &quot; ouaf  ouaf &quot;;     break;     case 'chat' :         echo &quot; miaou miaou &quot;;     break;     default :         echo $Animal.&quot; n’est pas un animal domestique &quot;; }  instruction  break  est nécessaire si les actions qui le suivent n'ont pas être exécutées
structure de boucle $NbDeCoup=6; $i=0; While($i != $NbDeCoup) {    $CoupAJouer = $NbDeCoup - $i;    echo &quot;il vous reste &quot;. $CoupAJouer. &quot; à jouer&quot;;    $i++; }
structure de boucle inversée $NbDeCoup=6; $i=0; do { $CoupAJouer = $NbDeCoup - $i; echo &quot;il vous reste &quot;. $CoupAJouer. &quot; à jouer&quot;; $i++; }  While($i != $NbDeCoup); echo “la partie est finie“;
structure de boucle itérative $tab=Array(2,4,8,9,0); for ( $i = 1 ; $i <= 4 ; $i++ ) {     echo &quot; élément numéro &quot;.$i;     echo “contient la valeur&quot;.$tab[i]; }
structure de parcours de tableau $langages = array('fr' => ' français', 'en' => 'english', 'de' => 'deutsch'); foreach ( $langages as $libelle) { echo &quot;<li>&quot;.$libelle.&quot;</li>&quot;; } affichera  français  english  deutsch  foreach ( $langages as $key => $libelle){ echo &quot;<li>&quot;.$key.&quot; : &quot;.$libelle.&quot;</li>&quot;; } affichera  fr : français  en : english  de : deutsch
sortie forcée de boucle l'instruction break pemet de quitter prématurément une boucle foreach($langages as $libelle) { if($libelle == &quot;english&quot;) { break; } } stoppera le parcours du tableau dés que la valeur &quot;english&quot; est rencontrée
passage forcé à l'itération suivante Continue permet de passer à l’itération suivante d’une boucle sans exécuter le code qui suit cette instruction dans le bloc de la boucle foreach($langages as $libelle) { if($libelle == &quot;english&quot;) { continue; } echo &quot;<li>&quot;.$libelle.&quot;</li>&quot;; } affichera tous les éléments du tableau langages sauf la valeur english
Inclusion / factorisation inclure et exécuter le code de file.php si le fichier existe include(file.php);  inclure et exécuter le code de file.php si le fichier existe et s’il n’a pas déjà été inclus par le script courant include_once(file.php); inclure et exécuter le code de file.php (ce fichier doit exister sinon require renverra un message d’erreur) require(file.php);  inclure et exécuter le code de file.php (ce fichier doit exister sinon require renverra un message d’erreur) si le fichier n’a pas déjà été inclus par le script courant require_once(file.php);
Ouvrir / écrire un fichier Ouvrir un fichier fopen  ( string $filename  , string $mode) Renvoie un identifiant de ressource. $mode peut être ‘r’, ‘w’, ‘r+’ … Écrire dans un fichier fwrite  ( resource $handle  , string $string) Lire length octe d’un fichier fread  ( resource $handle  , int $length  ) Lire un fichier en entier fread ($handle, filesize ($filename))  Fermer un fichier fclose ($handle)
fonctions Les fonctions sont des portions de code (entre { … })associés à un nom  Les fonctions peuvent prendre des arguments dont il n’est pas nécessaire de spécifier le type  La liste des arguments est entre (…) , séparés par des virgules  le mot clé function : indique le début d’une déclaration de fonction  le mot clé return : spécifie le résultat à renvoyer
Fonction typique <?    function somme ($a,$b)    {       return $a + $b;    } ?>
Appel d’une fonction <?    $Total=234;    $SousTotal=123;    $Total=somme ($Total,$SousTotal);    echo $Total;// affiche 357 ?>
Paramètres par défaut Il est possible d’attribuer des valeurs par défaut aux arguments d’une fonction  Une valeur par défaut ne peut être qu’une constante  Les arguments ayant une valeur par défaut doivent être placés après les arguments qui n’en ont pas
Exemple d’utilisation de paramètres par défaut <? function ServirApero($Contenant, $Boisson = &quot;ricard&quot;) { return &quot; Servir un &quot;.$Contenant. &quot; de &quot;.$Boisson; } echo ServirApero(&quot;verre&quot;); //Affiche Servir un verre de ricard echo ServirApero(&quot;chaudron&quot;, &quot;bourbon&quot;); //Affiche Servir un chaudron de bourbon ?>
Portée des variables Une variable définie dans une fonction a une portée locale à la fonction  <?     function somme ($a,$b)    {       return $b = $a + $b;    } ?>
Variables locales à la fonction <?     $a=2;    $b=4;    echo somme ($a,$b);//Affiche 6    echo $a; //Affiche 2    echo $b; //Affiche 4 ?>
le mot clé  global   <?     function somme ()    {       global $a, $b;       return $b = $a + $b;    } ?>
Variables globales au script Toutes les variables globales du script <?      $a=2;    $b=4;    echo somme ();//Affiche 6    echo $a; //Affiche 2    echo $b; //Affiche 6 ?>
Variables prédéfinies: $GLOBALS $GLOBALS est un tableau associatif contenant les références sur toutes les variables globales du script.  Les noms des variables sont les index du tableau.  Cette fonction est strictement équivalente à la précédente function somme () { $GLOBALS[&quot;b&quot;]=$GLOBALS[“a&quot;]+$GLOBALS[&quot;b&quot;]; }
Variables prédéfinies: $_SERVER $_SERVER est un tableau contenant des informations comme les en-têtes, dossiers et chemins du script.  $_SERVER ['REQUEST_METHOD'] get, post, head, put $_SERVER ['QUERY_STRING'] La chaîne de requête, si elle existe, qui est utilisée pour accéder à la page.  $_SERVER ['HTTP_REFERER'] L'adresse de la page (si elle existe) qui a conduit le client à la page courante.  $_SERVER ['HTTP_USER_AGENT'] une chaîne qui décrit le client HTML utilisé pour voir la page courante  $_SERVER [‘REMOTE_ADDR'] L'adresse IP du client qui demande la page courante.  $_SERVER [‘REMOTE_HOST'] Le nom de l'hôte qui lit le script courant (résolution DNS inversée).
Variables prédéfinies: $_COOKIE Un tableau associatif des valeurs passées au script courant via les cookies HTTP  Si la directive register_globals (c'est mal) est active, alors ces variables seront aussi rendues directement accessible dans le contexte d'exécution global.
Variables prédéfinies: $_SESSION Un tableau associatif des valeurs stockées dans les sessions, et accessible au script courant.  Si la directive register_globals (c'est mal) est active, alors ces variables seront aussi rendues directement accessible dans le contexte d'exécution global.
Variables prédéfinies:  $_POST, $_GET, $_REQUEST $_GET : Un tableau associatif des valeurs passées au script courant via le protocole HTTP et la méthode GET  $_POST : Un tableau associatif des valeurs passées au script courant via le protocole HTTP et la méthode POST $_REQUEST : Un tableau associatif des valeurs passées au script courant via le protocole HTTP et les méthodes GET et POST Si la directive register_globals est active (c'est mal), alors ces variables seront aussi rendues directement accessible dans le contexte d'exécution global. Toutes les super globales et leur valeurs sont affichées par la commande phpinfo()
Appel dynamique de fonctions call_user_func  ( $func ,  $arg ) Permet d’appeler dynamiquement la fonction  $func  avec  $arg  en paramètre $arg  peut être un tableau PHP, une chaîne de caractères (séparée par des virgules)

Contenu connexe

Tendances

PHP 7.0 : aperçu des nouveautés
PHP 7.0 : aperçu des nouveautésPHP 7.0 : aperçu des nouveautés
PHP 7.0 : aperçu des nouveautés
Didcode
 
PHP #1 : introduction
PHP #1 : introductionPHP #1 : introduction
PHP #1 : introduction
Jean Michel
 
PHP 7 et Symfony 3
PHP 7 et Symfony 3PHP 7 et Symfony 3
PHP 7 et Symfony 3
Eddy RICHARD
 
Migration PHP4-PHP5
Migration PHP4-PHP5Migration PHP4-PHP5
Migration PHP4-PHP5
julien pauli
 
La première partie de la présentation PHP
La première partie de la présentation PHPLa première partie de la présentation PHP
La première partie de la présentation PHP
Club Scientifique de l'ESI - CSE
 
Nouveautés php 7
Nouveautés php 7Nouveautés php 7
Nouveautés php 7
Cyrille Grandval
 
Initiation au langage PHP
Initiation au langage PHPInitiation au langage PHP
Initiation au langage PHP
Faouzia Benabbou
 
Bases de PHP - Partie 1
Bases de PHP - Partie 1Bases de PHP - Partie 1
Bases de PHP - Partie 1
Régis Lutter
 
Communications Réseaux et HTTP avec PHP
Communications Réseaux et HTTP avec PHPCommunications Réseaux et HTTP avec PHP
Communications Réseaux et HTTP avec PHP
julien pauli
 
Php cours
Php coursPhp cours
Php cours
funinformatique
 
Formation python 3
Formation python 3Formation python 3
Formation python 3
WajihBaghdadi1
 
La référence Clear php
La référence Clear phpLa référence Clear php
La référence Clear php
Damien Seguy
 
PHP (Partie I) Par Mahdi Ben Alaya
PHP (Partie I) Par Mahdi Ben AlayaPHP (Partie I) Par Mahdi Ben Alaya
PHP (Partie I) Par Mahdi Ben Alaya
Mahdi Ben Alaya
 
Php 7.4 2020-01-28 - afup
Php 7.4   2020-01-28 - afupPhp 7.4   2020-01-28 - afup
Php 7.4 2020-01-28 - afup
Julien Vinber
 
PHP mysql Xml.pdf
PHP mysql Xml.pdfPHP mysql Xml.pdf
PHP mysql Xml.pdf
GroupeExcelMarrakech
 

Tendances (17)

PHP 7.0 : aperçu des nouveautés
PHP 7.0 : aperçu des nouveautésPHP 7.0 : aperçu des nouveautés
PHP 7.0 : aperçu des nouveautés
 
PHP #1 : introduction
PHP #1 : introductionPHP #1 : introduction
PHP #1 : introduction
 
PHP 7 et Symfony 3
PHP 7 et Symfony 3PHP 7 et Symfony 3
PHP 7 et Symfony 3
 
Migration PHP4-PHP5
Migration PHP4-PHP5Migration PHP4-PHP5
Migration PHP4-PHP5
 
Php seance1
Php seance1Php seance1
Php seance1
 
La première partie de la présentation PHP
La première partie de la présentation PHPLa première partie de la présentation PHP
La première partie de la présentation PHP
 
Nouveautés php 7
Nouveautés php 7Nouveautés php 7
Nouveautés php 7
 
Initiation au langage PHP
Initiation au langage PHPInitiation au langage PHP
Initiation au langage PHP
 
Bases de PHP - Partie 1
Bases de PHP - Partie 1Bases de PHP - Partie 1
Bases de PHP - Partie 1
 
Communications Réseaux et HTTP avec PHP
Communications Réseaux et HTTP avec PHPCommunications Réseaux et HTTP avec PHP
Communications Réseaux et HTTP avec PHP
 
Cours php
Cours phpCours php
Cours php
 
Php cours
Php coursPhp cours
Php cours
 
Formation python 3
Formation python 3Formation python 3
Formation python 3
 
La référence Clear php
La référence Clear phpLa référence Clear php
La référence Clear php
 
PHP (Partie I) Par Mahdi Ben Alaya
PHP (Partie I) Par Mahdi Ben AlayaPHP (Partie I) Par Mahdi Ben Alaya
PHP (Partie I) Par Mahdi Ben Alaya
 
Php 7.4 2020-01-28 - afup
Php 7.4   2020-01-28 - afupPhp 7.4   2020-01-28 - afup
Php 7.4 2020-01-28 - afup
 
PHP mysql Xml.pdf
PHP mysql Xml.pdfPHP mysql Xml.pdf
PHP mysql Xml.pdf
 

En vedette

[Code Camp 2009] Desarrollo de juegos con XNA (Ángel Arcoraci)
[Code Camp 2009] Desarrollo de juegos con XNA (Ángel Arcoraci)[Code Camp 2009] Desarrollo de juegos con XNA (Ángel Arcoraci)
[Code Camp 2009] Desarrollo de juegos con XNA (Ángel Arcoraci)
Microsoft Argentina y Uruguay [Official Space]
 
Que Es Una Red FíSica
Que Es Una Red FíSicaQue Es Una Red FíSica
Que Es Una Red FíSica
luis perez
 
Presentaci On Softwar Turistico.
Presentaci On Softwar Turistico.Presentaci On Softwar Turistico.
Presentaci On Softwar Turistico.
hans
 
Ingrid Mallitasig
Ingrid MallitasigIngrid Mallitasig
Ingrid Mallitasig
ingridlisbeth
 
[Code Camp 2009] Cloud Messaging (Felipe Ferreira)
[Code Camp 2009] Cloud Messaging (Felipe Ferreira)[Code Camp 2009] Cloud Messaging (Felipe Ferreira)
[Code Camp 2009] Cloud Messaging (Felipe Ferreira)
Microsoft Argentina y Uruguay [Official Space]
 
Le mois national de vérification sur la qualité du BCM : Résultats
Le mois national de vérification sur la qualité du BCM : Résultats Le mois national de vérification sur la qualité du BCM : Résultats
Le mois national de vérification sur la qualité du BCM : Résultats
Canadian Patient Safety Institute
 
Trabajar desde casa?
Trabajar desde casa?Trabajar desde casa?
Trabajar desde casa?
victorp1987
 
Parcial Diseño
Parcial DiseñoParcial Diseño
Parcial Diseño
Tania Sanchez
 
PresentacióN Rsc Project
PresentacióN Rsc ProjectPresentacióN Rsc Project
PresentacióN Rsc Project
RSC-PROJECT
 
Parcial DiseñO
Parcial DiseñOParcial DiseñO
Parcial DiseñO
Tania Sanchez
 
UTPL_Secretos Para La Felicidad
UTPL_Secretos Para La FelicidadUTPL_Secretos Para La Felicidad
UTPL_Secretos Para La Felicidad
Alexander Sócola
 
Alca..
Alca..Alca..
Alca..
Isa Gon
 
Differences D Ages
Differences D AgesDifferences D Ages
Differences D Ages
guest0b8dc02
 
Leccion 04 I 2010
Leccion 04 I 2010Leccion 04 I 2010
Leccion 04 I 2010
Ricardo
 
Actividades Sugerias Bloque 1
Actividades Sugerias Bloque 1Actividades Sugerias Bloque 1
Actividades Sugerias Bloque 1
serarockcld
 
Manuales Vdownloader Y Downloadhelper
Manuales Vdownloader Y DownloadhelperManuales Vdownloader Y Downloadhelper
Manuales Vdownloader Y Downloadhelper
Iago
 
1 Cintia
1 Cintia1 Cintia
1 Cintia
guestcef7d2
 
Seminario internacional sobre universidad
Seminario internacional sobre universidadSeminario internacional sobre universidad
Seminario internacional sobre universidad
graciela alicia es.
 
UTPL_Dios Te Dice
UTPL_Dios Te DiceUTPL_Dios Te Dice
UTPL_Dios Te Dice
Alexander Sócola
 

En vedette (20)

[Code Camp 2009] Desarrollo de juegos con XNA (Ángel Arcoraci)
[Code Camp 2009] Desarrollo de juegos con XNA (Ángel Arcoraci)[Code Camp 2009] Desarrollo de juegos con XNA (Ángel Arcoraci)
[Code Camp 2009] Desarrollo de juegos con XNA (Ángel Arcoraci)
 
Que Es Una Red FíSica
Que Es Una Red FíSicaQue Es Una Red FíSica
Que Es Una Red FíSica
 
Colaboradores2
Colaboradores2Colaboradores2
Colaboradores2
 
Presentaci On Softwar Turistico.
Presentaci On Softwar Turistico.Presentaci On Softwar Turistico.
Presentaci On Softwar Turistico.
 
Ingrid Mallitasig
Ingrid MallitasigIngrid Mallitasig
Ingrid Mallitasig
 
[Code Camp 2009] Cloud Messaging (Felipe Ferreira)
[Code Camp 2009] Cloud Messaging (Felipe Ferreira)[Code Camp 2009] Cloud Messaging (Felipe Ferreira)
[Code Camp 2009] Cloud Messaging (Felipe Ferreira)
 
Le mois national de vérification sur la qualité du BCM : Résultats
Le mois national de vérification sur la qualité du BCM : Résultats Le mois national de vérification sur la qualité du BCM : Résultats
Le mois national de vérification sur la qualité du BCM : Résultats
 
Trabajar desde casa?
Trabajar desde casa?Trabajar desde casa?
Trabajar desde casa?
 
Parcial Diseño
Parcial DiseñoParcial Diseño
Parcial Diseño
 
PresentacióN Rsc Project
PresentacióN Rsc ProjectPresentacióN Rsc Project
PresentacióN Rsc Project
 
Parcial DiseñO
Parcial DiseñOParcial DiseñO
Parcial DiseñO
 
UTPL_Secretos Para La Felicidad
UTPL_Secretos Para La FelicidadUTPL_Secretos Para La Felicidad
UTPL_Secretos Para La Felicidad
 
Alca..
Alca..Alca..
Alca..
 
Differences D Ages
Differences D AgesDifferences D Ages
Differences D Ages
 
Leccion 04 I 2010
Leccion 04 I 2010Leccion 04 I 2010
Leccion 04 I 2010
 
Actividades Sugerias Bloque 1
Actividades Sugerias Bloque 1Actividades Sugerias Bloque 1
Actividades Sugerias Bloque 1
 
Manuales Vdownloader Y Downloadhelper
Manuales Vdownloader Y DownloadhelperManuales Vdownloader Y Downloadhelper
Manuales Vdownloader Y Downloadhelper
 
1 Cintia
1 Cintia1 Cintia
1 Cintia
 
Seminario internacional sobre universidad
Seminario internacional sobre universidadSeminario internacional sobre universidad
Seminario internacional sobre universidad
 
UTPL_Dios Te Dice
UTPL_Dios Te DiceUTPL_Dios Te Dice
UTPL_Dios Te Dice
 

Similaire à PHP - get started

seance4-1 php.ppt
seance4-1 php.pptseance4-1 php.ppt
seance4-1 php.ppt
AmineReal
 
Les principes de base de PHP
 Les principes de base de PHP  Les principes de base de PHP
Les principes de base de PHP
EL JAOUARI Ahmed
 
Développement Web- PHP (partie I).pdf
Développement Web- PHP (partie I).pdfDéveloppement Web- PHP (partie I).pdf
Développement Web- PHP (partie I).pdf
YasushiTsubakik
 
Developpement web dynamique_Base de donnees.pdf
Developpement web dynamique_Base de donnees.pdfDeveloppement web dynamique_Base de donnees.pdf
Developpement web dynamique_Base de donnees.pdf
rachidimstapha
 
Php1
Php1Php1
.php1 : les fondamentaux du PHP
.php1 : les fondamentaux du PHP.php1 : les fondamentaux du PHP
.php1 : les fondamentaux du PHP
Abdoulaye Dieng
 
Ruby Pour RoR
Ruby Pour RoRRuby Pour RoR
Ruby Pour RoR
eric German
 
0519-pdf-php-bases-initiation.pdf
0519-pdf-php-bases-initiation.pdf0519-pdf-php-bases-initiation.pdf
0519-pdf-php-bases-initiation.pdf
RihabBENLAMINE
 
Résumé Complet : Les Fondamentaux du PHP et Intégration avec MySQL.pdf
Résumé Complet : Les Fondamentaux du PHP et Intégration avec MySQL.pdfRésumé Complet : Les Fondamentaux du PHP et Intégration avec MySQL.pdf
Résumé Complet : Les Fondamentaux du PHP et Intégration avec MySQL.pdf
Pointer @Info
 
PHP mysql Xml.doc
PHP mysql Xml.docPHP mysql Xml.doc
PHP mysql Xml.doc
GroupeExcelMarrakech
 
Structurer ses travaux SAS à l'aide de pages HTML, Joël Rivest
Structurer ses travaux SAS à l'aide de  pages HTML, Joël RivestStructurer ses travaux SAS à l'aide de  pages HTML, Joël Rivest
Structurer ses travaux SAS à l'aide de pages HTML, Joël Rivest
sasreference
 
Cours php
Cours php Cours php
Cours php
Yassine Badri
 
PHP 5.3, PHP Next
PHP 5.3, PHP NextPHP 5.3, PHP Next
PHP 5.3, PHP Next
SQLI
 
Php4 Mysql
Php4 MysqlPhp4 Mysql
Php4 Mysql
HamdiBaklouti
 
Cours php -partie 1.pdf
Cours php -partie 1.pdfCours php -partie 1.pdf
Cours php -partie 1.pdf
ssuserc46a93
 
Domi code-igniter-4 i18-n
Domi code-igniter-4 i18-nDomi code-igniter-4 i18-n
Domi code-igniter-4 i18-n
AFPA
 
Php_Mysql.pdf
Php_Mysql.pdfPhp_Mysql.pdf
Php_Mysql.pdf
ETTAMRY
 
PHP &amp; MySQL
PHP &amp; MySQLPHP &amp; MySQL
PHP &amp; MySQL
Saïd Radhouani
 

Similaire à PHP - get started (20)

seance4-1 php.ppt
seance4-1 php.pptseance4-1 php.ppt
seance4-1 php.ppt
 
Les principes de base de PHP
 Les principes de base de PHP  Les principes de base de PHP
Les principes de base de PHP
 
PHP.pptx
PHP.pptxPHP.pptx
PHP.pptx
 
Développement Web- PHP (partie I).pdf
Développement Web- PHP (partie I).pdfDéveloppement Web- PHP (partie I).pdf
Développement Web- PHP (partie I).pdf
 
Developpement web dynamique_Base de donnees.pdf
Developpement web dynamique_Base de donnees.pdfDeveloppement web dynamique_Base de donnees.pdf
Developpement web dynamique_Base de donnees.pdf
 
Php1
Php1Php1
Php1
 
.php1 : les fondamentaux du PHP
.php1 : les fondamentaux du PHP.php1 : les fondamentaux du PHP
.php1 : les fondamentaux du PHP
 
Ruby Pour RoR
Ruby Pour RoRRuby Pour RoR
Ruby Pour RoR
 
0519-pdf-php-bases-initiation.pdf
0519-pdf-php-bases-initiation.pdf0519-pdf-php-bases-initiation.pdf
0519-pdf-php-bases-initiation.pdf
 
Résumé Complet : Les Fondamentaux du PHP et Intégration avec MySQL.pdf
Résumé Complet : Les Fondamentaux du PHP et Intégration avec MySQL.pdfRésumé Complet : Les Fondamentaux du PHP et Intégration avec MySQL.pdf
Résumé Complet : Les Fondamentaux du PHP et Intégration avec MySQL.pdf
 
PHP mysql Xml.doc
PHP mysql Xml.docPHP mysql Xml.doc
PHP mysql Xml.doc
 
Structurer ses travaux SAS à l'aide de pages HTML, Joël Rivest
Structurer ses travaux SAS à l'aide de  pages HTML, Joël RivestStructurer ses travaux SAS à l'aide de  pages HTML, Joël Rivest
Structurer ses travaux SAS à l'aide de pages HTML, Joël Rivest
 
Cours php
Cours php Cours php
Cours php
 
PHP 5.3, PHP Next
PHP 5.3, PHP NextPHP 5.3, PHP Next
PHP 5.3, PHP Next
 
Php4 Mysql
Php4 MysqlPhp4 Mysql
Php4 Mysql
 
Cours php -partie 1.pdf
Cours php -partie 1.pdfCours php -partie 1.pdf
Cours php -partie 1.pdf
 
Domi code-igniter-4 i18-n
Domi code-igniter-4 i18-nDomi code-igniter-4 i18-n
Domi code-igniter-4 i18-n
 
Php_Mysql.pdf
Php_Mysql.pdfPhp_Mysql.pdf
Php_Mysql.pdf
 
PHP &amp; MySQL
PHP &amp; MySQLPHP &amp; MySQL
PHP &amp; MySQL
 
Cours Php
Cours PhpCours Php
Cours Php
 

Dernier

M365 Community Days MTL 2024 - Découverte du Process Mining et du Task Mining...
M365 Community Days MTL 2024 - Découverte du Process Mining et du Task Mining...M365 Community Days MTL 2024 - Découverte du Process Mining et du Task Mining...
M365 Community Days MTL 2024 - Découverte du Process Mining et du Task Mining...
Nicolas Georgeault
 
Rapport Projet ERP - Plateforme Odoo 16 (PFE Licence)
Rapport Projet ERP - Plateforme Odoo 16 (PFE Licence)Rapport Projet ERP - Plateforme Odoo 16 (PFE Licence)
Rapport Projet ERP - Plateforme Odoo 16 (PFE Licence)
Chadi Kammoun
 
La Gestion des risques selon ISO 27005.pdf
La Gestion des risques selon ISO 27005.pdfLa Gestion des risques selon ISO 27005.pdf
La Gestion des risques selon ISO 27005.pdf
SoniazghalKallel
 
Les Vidéoprojecteurs : Guide d'achat et Comparatif
Les Vidéoprojecteurs : Guide d'achat et ComparatifLes Vidéoprojecteurs : Guide d'achat et Comparatif
Les Vidéoprojecteurs : Guide d'achat et Comparatif
Top-plans
 
INTELLIGENCE ARTIFICIELLE + INFORMATIQUE QUANTIQUE = LA PLUS GRANDE RÉVOLUTIO...
INTELLIGENCE ARTIFICIELLE + INFORMATIQUE QUANTIQUE = LA PLUS GRANDE RÉVOLUTIO...INTELLIGENCE ARTIFICIELLE + INFORMATIQUE QUANTIQUE = LA PLUS GRANDE RÉVOLUTIO...
INTELLIGENCE ARTIFICIELLE + INFORMATIQUE QUANTIQUE = LA PLUS GRANDE RÉVOLUTIO...
Faga1939
 
Technologie hydrostatique, innovation pour la stérilisation des aliments : HI...
Technologie hydrostatique, innovation pour la stérilisation des aliments : HI...Technologie hydrostatique, innovation pour la stérilisation des aliments : HI...
Technologie hydrostatique, innovation pour la stérilisation des aliments : HI...
InnovaSter-Trade Ltd.
 

Dernier (6)

M365 Community Days MTL 2024 - Découverte du Process Mining et du Task Mining...
M365 Community Days MTL 2024 - Découverte du Process Mining et du Task Mining...M365 Community Days MTL 2024 - Découverte du Process Mining et du Task Mining...
M365 Community Days MTL 2024 - Découverte du Process Mining et du Task Mining...
 
Rapport Projet ERP - Plateforme Odoo 16 (PFE Licence)
Rapport Projet ERP - Plateforme Odoo 16 (PFE Licence)Rapport Projet ERP - Plateforme Odoo 16 (PFE Licence)
Rapport Projet ERP - Plateforme Odoo 16 (PFE Licence)
 
La Gestion des risques selon ISO 27005.pdf
La Gestion des risques selon ISO 27005.pdfLa Gestion des risques selon ISO 27005.pdf
La Gestion des risques selon ISO 27005.pdf
 
Les Vidéoprojecteurs : Guide d'achat et Comparatif
Les Vidéoprojecteurs : Guide d'achat et ComparatifLes Vidéoprojecteurs : Guide d'achat et Comparatif
Les Vidéoprojecteurs : Guide d'achat et Comparatif
 
INTELLIGENCE ARTIFICIELLE + INFORMATIQUE QUANTIQUE = LA PLUS GRANDE RÉVOLUTIO...
INTELLIGENCE ARTIFICIELLE + INFORMATIQUE QUANTIQUE = LA PLUS GRANDE RÉVOLUTIO...INTELLIGENCE ARTIFICIELLE + INFORMATIQUE QUANTIQUE = LA PLUS GRANDE RÉVOLUTIO...
INTELLIGENCE ARTIFICIELLE + INFORMATIQUE QUANTIQUE = LA PLUS GRANDE RÉVOLUTIO...
 
Technologie hydrostatique, innovation pour la stérilisation des aliments : HI...
Technologie hydrostatique, innovation pour la stérilisation des aliments : HI...Technologie hydrostatique, innovation pour la stérilisation des aliments : HI...
Technologie hydrostatique, innovation pour la stérilisation des aliments : HI...
 

PHP - get started

  • 1. PHP ou le web dynamique
  • 2. généralités écrit par Ramsus Lerdorf en 1994 pour gérer sa page perso actuellement stable en version 5 (5.3) et la version 6 est imminente le P de LAMP (Linux Apache MySQL PHP) Damien Seguy pionnier français dans la promotion du langage PHP ( nexen.net ) écrit en de C et historiquement basé sur des bibliothèques Perl Le langage proprement dit est Zend Engine, PHP (Hypertext Preprocessor) est la version embedded de Zend Engine par convention l'extension est .php (éventuellement .php4, .php5 si plusieurs version cohabitent) PHP 4 n'est plus maintenu depuis fin 2007 la doc officielle en français http://php.net/manual/fr/index.php
  • 3. php cli VS mod_php 2 versions php php cli en ligne de commandes Chemin à mettre dans la variable d’environnement $PATH mod_php Permet d’embarquer un interpréteur php dans les process fils du démon httpd 2 fichiers de configuration de php.ini N.B certains projets utilisent maintenant le même interpréteur (UwAmp)
  • 4. php.ini Quelques directives register_globals: rend les variables GET, POST, de COOKIE et de SESSION directement accessibles (déconseillé!) post_max_size: taille maximale d’une requête en méthode post upload_max_fliesize: taille maximale des fichiers ulpoadés memory limit: taille de mémoire maximale allouée à PHP extension_dir: spécifie le répertoire dans lequel PHP doit chercher des extensions externes à charger extension: quelles extensions doivent être chargées
  • 5. Les extensions php Quelques extensions simpleXML (inclus en PHP5): fournit des outils très simples et faciles à utiliser pour convertir du XML en un objet qui peut être manipulé avec ses propriétés et les itérateurs de tableaux. SQLite (inclus en PHP5): fait l'interface avec le moteur de base SQLite Embeddable SQL Database Engine (ne nécessite pas l'installation d'un serveur de BDD) MySQL: permet d'accéder aux bases de données MySQL Pcre: permet la compatibilité avec les expressions régulières Perl
  • 6. Un standard supporté par de nombreux serveurs http IIS, Netscape, Roxen, IPlanet multiplateforme : *nix et windows ( wamp , EasyPHP , xampp ) proposé massivement par les hébergeurs
  • 9. Le langage Dit de type embedded : le code PHP s'insère au milieu du code HTML <?php = début de portion de code PHP ?> = fin de portion de code PHP Chaque instructions se termine par le caractère ; commentaire // commente une ligne entière /* … */ commente une portion de code PHP PHP est sensible à la casse (il y a un distinction entre les minuscules et les majuscules) TRUE (1) et FALSE(0) sont deux contantes prédéfinies
  • 10. Hello world!! Côté serveur <html>   <head>     <title>My First PHP Script</title>   </head>   <body>     <p>         <?php echo &quot;Hello World&quot;;  ?>     </p>   </body> </html>
  • 11. Version cgi (non embedded) <?php echo &quot;<html>&quot;; echo &quot;<head>&quot;; echo &quot;<title>My First PHP Script</title>&quot;; echo &quot;</head>&quot;; echo &quot;<body>&quot;; echo &quot;<p>Hello World</p>&quot;; echo &quot;</body>&quot;; echo &quot;</html>&quot;; ?>
  • 12. Côté client <html>   <head>     <title>My First PHP Script</title>   </head>   <body>     <p>         Hello World     </p>   </body> </html>
  • 13. Les constantes créer une constante define(&quot;MaConstante&quot;, 5); Tester si une constante existe defined(&quot;MaConstante&quot;); Appeler une constante echo MaConstante; //affiche 5
  • 14. Les variables Toutes les variables commence par le caractère $ suivi d'une lettre ou d'un _ Le typage est implicite, il dépend de la valeur affectée <? $MonEntier=3; //est un entier $MonReel=1.23e-12; //est un float $MaChaine=&quot;Hello world!&quot;; // est un string $MonEntier=&quot;3&quot;; // est un string ?>
  • 15. Les types Boolean : Booléen Integer : Entier Réel : Double String : Chaîne de caractères Array : Tableau Object : Objet Tester le type d’une variable gettype($var); Typer explicitement settype($var,  &quot;type&quot;);
  • 16. Opérations sur les variables Tester le type d’une variable gettype($var); Typer explicitement settype($var,  &quot;type&quot;); Tester si une variable existe isset($var); Détruire une variable et libérer la mémoire qui lui était allouée unset($var); Tester si une variable est non affectée (i.e. =0 ou =&quot;&quot;) empty($var);
  • 17. transtypage <?php $foo = 10;    // $foo est un entier $bar = (double) $foo;    // $bar est un double ?> (int) , (integer) - type entier (bool) , (boolean) - booléen (double) , (float) , (real) - type double (string) - type chaîne de caractère (array) - type tableau (object) - type objet
  • 18. Les strings les délimiteurs &quot;...&quot; toutes les variables contenues entre ces délimiteurs seront évaluées $MyColor=&quot;rouges&quot;; echo &quot;Mes souliers sont $MyColor&quot;; affiche Mes souliers sont rouges caractères échappés pour afficher le caractère pour afficher le caractère $ amp;quot; pour afficher le caractère &quot;
  • 19. Les strings les délimiteurs ‘...’ aucune des variables contenues entre ces délimiteurs ne sera évaluée $MyColor=&quot;rouges&quot;; echo 'Mes souliers sont $MyColor'; affiche Mes souliers sont $MyColor caractères échappés pour afficher le caractère apos; pour afficher le caractère '
  • 20. Les strings caractères non imprimables nouvelle ligne retour à la ligne tabulation spécificité &quot;&quot; sous windows &quot;&quot; sous *nix &quot; &quot; sous mac
  • 21. Fonctions d’affichage écrit sur la sortie standard print('hello '.$nom); echo(&quot;hello $nom&quot;); print('hello '.$nom); écrit de manière formatée comme en C sur la sortie standard printf(&quot;hello %s&quot;, $nom); écrit de manière lisible les variables complexes, notamment les tableaux et les objets print_r($tableau);
  • 22. Opérateurs arithmétiques + pour l'addition - pour la soustraction * pour la multiplication / pour la division % pour la division entière
  • 23. Opérateurs d’affectation $y est affecté à $x $x = $y $y est additionné à $x $x += $y <=> $x = $x + $y $y est soustrait de $x $x -= $y <=> $x = $x - $y $x est multiplié par $y $x *= $y <=> $x = $x * $y $x est divisé par $y $x /= $y <=> $x = $x / $y $y le reste de $x/$y est affecté à $x $x %= $y <=> $x = $x % $y
  • 24. Opérateurs de comparaisons égalité de $x et $y $x == $y égalités des valeurs et des types de $x et $y $x === $y $x est strictement inférieur à $y $x < $y $x est strictement supérieur à $y $x > $y $x est inférieur ou égal à $y $x =< $y $x est supérieur ou égal à $y $x => $y
  • 25. Opérateurs logique & concaténation logique && et logique || ou logique ! négation concaténation : . concatène deux chaines de caractères
  • 26. Les tableaux le constructeur permettant de créer un tableau est array() par défaut l'indexation d'un tableau commence à 0 $langages = array('français','english','deutsch'); il est possible de créer un tableau en lui affectant des valeurs $langages[] = 'français'; $langages[] = 'english'; $langages[] = 'deutsch';
  • 27. Les tableaux spécifier explicitement les indices $langages[0] = 'français'; $langages[1] = 'english'; $langages[2] = 'deutsch'; indexer des tableaux avec des chaînes de caractères (tableaux associatifs) $langages = array(  'fr' => 'français',  'en' => 'english',  'de' => 'deutsch‘ ); sans le constructeur $langages['fr'] = 'français'; $langages['en'] = 'english'; $langages['de'] = 'deutsch';
  • 28. Fonctions sur les tableaux compte les éléments du tableau $langages count($langages); renvoit TRUE si la chaîne caractère 'deutsch' est un élément du tableau in_array('deutsch', $langages); ajoute l'élémént 'chinese' à la fin du tableau (empile) array_push($langages, 'chinese'); renvoit le dernier élément du tableau (dépile) array_pop($langages); il existe de nombreuses fonctions sur les tableaux
  • 29. Structure conditionnelle if( $cpt > 0 && $cpt < 4 ) { echo $cpt. “est dans l’intervalle ]0;4[“; } elseif( $cpt >= 4 && $cpt < 10) { echo $cpt. “est dans l’intervalle [4;10[“; } else {  echo $cpt. “est dans l’intervalle ]10;+∞)“; }
  • 30. structure de choix swicth($animal) {     case 'chien' :         echo &quot; ouaf  ouaf &quot;;     break;     case 'chat' :         echo &quot; miaou miaou &quot;;     break;     default :         echo $Animal.&quot; n’est pas un animal domestique &quot;; } instruction break est nécessaire si les actions qui le suivent n'ont pas être exécutées
  • 31. structure de boucle $NbDeCoup=6; $i=0; While($i != $NbDeCoup) {    $CoupAJouer = $NbDeCoup - $i;    echo &quot;il vous reste &quot;. $CoupAJouer. &quot; à jouer&quot;;    $i++; }
  • 32. structure de boucle inversée $NbDeCoup=6; $i=0; do { $CoupAJouer = $NbDeCoup - $i; echo &quot;il vous reste &quot;. $CoupAJouer. &quot; à jouer&quot;; $i++; } While($i != $NbDeCoup); echo “la partie est finie“;
  • 33. structure de boucle itérative $tab=Array(2,4,8,9,0); for ( $i = 1 ; $i <= 4 ; $i++ ) {     echo &quot; élément numéro &quot;.$i;     echo “contient la valeur&quot;.$tab[i]; }
  • 34. structure de parcours de tableau $langages = array('fr' => ' français', 'en' => 'english', 'de' => 'deutsch'); foreach ( $langages as $libelle) { echo &quot;<li>&quot;.$libelle.&quot;</li>&quot;; } affichera français english deutsch foreach ( $langages as $key => $libelle){ echo &quot;<li>&quot;.$key.&quot; : &quot;.$libelle.&quot;</li>&quot;; } affichera fr : français en : english de : deutsch
  • 35. sortie forcée de boucle l'instruction break pemet de quitter prématurément une boucle foreach($langages as $libelle) { if($libelle == &quot;english&quot;) { break; } } stoppera le parcours du tableau dés que la valeur &quot;english&quot; est rencontrée
  • 36. passage forcé à l'itération suivante Continue permet de passer à l’itération suivante d’une boucle sans exécuter le code qui suit cette instruction dans le bloc de la boucle foreach($langages as $libelle) { if($libelle == &quot;english&quot;) { continue; } echo &quot;<li>&quot;.$libelle.&quot;</li>&quot;; } affichera tous les éléments du tableau langages sauf la valeur english
  • 37. Inclusion / factorisation inclure et exécuter le code de file.php si le fichier existe include(file.php); inclure et exécuter le code de file.php si le fichier existe et s’il n’a pas déjà été inclus par le script courant include_once(file.php); inclure et exécuter le code de file.php (ce fichier doit exister sinon require renverra un message d’erreur) require(file.php); inclure et exécuter le code de file.php (ce fichier doit exister sinon require renverra un message d’erreur) si le fichier n’a pas déjà été inclus par le script courant require_once(file.php);
  • 38. Ouvrir / écrire un fichier Ouvrir un fichier fopen ( string $filename , string $mode) Renvoie un identifiant de ressource. $mode peut être ‘r’, ‘w’, ‘r+’ … Écrire dans un fichier fwrite ( resource $handle , string $string) Lire length octe d’un fichier fread ( resource $handle , int $length ) Lire un fichier en entier fread ($handle, filesize ($filename)) Fermer un fichier fclose ($handle)
  • 39. fonctions Les fonctions sont des portions de code (entre { … })associés à un nom Les fonctions peuvent prendre des arguments dont il n’est pas nécessaire de spécifier le type La liste des arguments est entre (…) , séparés par des virgules le mot clé function : indique le début d’une déclaration de fonction le mot clé return : spécifie le résultat à renvoyer
  • 40. Fonction typique <?    function somme ($a,$b)    {       return $a + $b;    } ?>
  • 41. Appel d’une fonction <?    $Total=234;    $SousTotal=123;    $Total=somme ($Total,$SousTotal);    echo $Total;// affiche 357 ?>
  • 42. Paramètres par défaut Il est possible d’attribuer des valeurs par défaut aux arguments d’une fonction Une valeur par défaut ne peut être qu’une constante Les arguments ayant une valeur par défaut doivent être placés après les arguments qui n’en ont pas
  • 43. Exemple d’utilisation de paramètres par défaut <? function ServirApero($Contenant, $Boisson = &quot;ricard&quot;) { return &quot; Servir un &quot;.$Contenant. &quot; de &quot;.$Boisson; } echo ServirApero(&quot;verre&quot;); //Affiche Servir un verre de ricard echo ServirApero(&quot;chaudron&quot;, &quot;bourbon&quot;); //Affiche Servir un chaudron de bourbon ?>
  • 44. Portée des variables Une variable définie dans une fonction a une portée locale à la fonction <?    function somme ($a,$b)    {       return $b = $a + $b;    } ?>
  • 45. Variables locales à la fonction <?    $a=2;    $b=4;    echo somme ($a,$b);//Affiche 6    echo $a; //Affiche 2    echo $b; //Affiche 4 ?>
  • 46. le mot clé global <?    function somme ()    {       global $a, $b;       return $b = $a + $b;    } ?>
  • 47. Variables globales au script Toutes les variables globales du script <?    $a=2;    $b=4;    echo somme ();//Affiche 6    echo $a; //Affiche 2    echo $b; //Affiche 6 ?>
  • 48. Variables prédéfinies: $GLOBALS $GLOBALS est un tableau associatif contenant les références sur toutes les variables globales du script. Les noms des variables sont les index du tableau. Cette fonction est strictement équivalente à la précédente function somme () { $GLOBALS[&quot;b&quot;]=$GLOBALS[“a&quot;]+$GLOBALS[&quot;b&quot;]; }
  • 49. Variables prédéfinies: $_SERVER $_SERVER est un tableau contenant des informations comme les en-têtes, dossiers et chemins du script. $_SERVER ['REQUEST_METHOD'] get, post, head, put $_SERVER ['QUERY_STRING'] La chaîne de requête, si elle existe, qui est utilisée pour accéder à la page. $_SERVER ['HTTP_REFERER'] L'adresse de la page (si elle existe) qui a conduit le client à la page courante. $_SERVER ['HTTP_USER_AGENT'] une chaîne qui décrit le client HTML utilisé pour voir la page courante $_SERVER [‘REMOTE_ADDR'] L'adresse IP du client qui demande la page courante. $_SERVER [‘REMOTE_HOST'] Le nom de l'hôte qui lit le script courant (résolution DNS inversée).
  • 50. Variables prédéfinies: $_COOKIE Un tableau associatif des valeurs passées au script courant via les cookies HTTP Si la directive register_globals (c'est mal) est active, alors ces variables seront aussi rendues directement accessible dans le contexte d'exécution global.
  • 51. Variables prédéfinies: $_SESSION Un tableau associatif des valeurs stockées dans les sessions, et accessible au script courant. Si la directive register_globals (c'est mal) est active, alors ces variables seront aussi rendues directement accessible dans le contexte d'exécution global.
  • 52. Variables prédéfinies: $_POST, $_GET, $_REQUEST $_GET : Un tableau associatif des valeurs passées au script courant via le protocole HTTP et la méthode GET $_POST : Un tableau associatif des valeurs passées au script courant via le protocole HTTP et la méthode POST $_REQUEST : Un tableau associatif des valeurs passées au script courant via le protocole HTTP et les méthodes GET et POST Si la directive register_globals est active (c'est mal), alors ces variables seront aussi rendues directement accessible dans le contexte d'exécution global. Toutes les super globales et leur valeurs sont affichées par la commande phpinfo()
  • 53. Appel dynamique de fonctions call_user_func ( $func , $arg ) Permet d’appeler dynamiquement la fonction $func avec $arg en paramètre $arg peut être un tableau PHP, une chaîne de caractères (séparée par des virgules)