SlideShare ist ein Scribd-Unternehmen logo
1 von 52
Downloaden Sie, um offline zu lesen
Jean-Marie Renouard 
LightPath 2014©
Le logo PHP est du domaine public 
http://commons.wikimedia.org/wiki/File:PHP-logo.svg 
Ce document est licencié sous licence 
◦Attribution-NonCommercial-ShareAlike 
◦CC BY-NC-SA 
Plus de détails: 
http://creativecommons.org/licenses/by-nc-sa/3.0/fr/ 
LightPath 2014© - http://www.jmrenouard.fr 
2
La syntaxe de base 
Les types 
Les variables 
Les constantes 
Les expressions 
Les opérateurs 
3 
LightPath 2014© - http://www.jmrenouard.fr
Les structures de contrôle 
Les références 
Les fonctions 
4 
LightPath 2014© - http://www.jmrenouard.fr
5 
LightPath 2014© - http://www.jmrenouard.fr
Balise de code : 
◦<?php ?> 
◦<script language="php"> </script> 
Balise de variable : 
◦<?= ?> 
◦<?= nom ?> <?= prenom ?> 
Balise d'expression : 
◦<? echo “bonjour” ?> 
Privilégier les tags PHP suivants: <?php ?> 
◦Les tags courts sont déconseillés car non actifs. 
◦short_open_tag=1 # Active les shorts tags 
6 
LightPath 2014© - http://www.jmrenouard.fr
<p>Ceci sera ignoré.</p> 
<?php 
echo 'Alors que ceci sera analysé par PHP.'; 
?> 
<p>Ceci sera également ignoré.</p> 
7 
LightPath 2014© - http://www.jmrenouard.fr
Chaque expression ou commande se termine par un point virgule (;) 
<?php 
echo « bonjour »; 
echo « le monde »; 
?> 
8 
LightPath 2014© - http://www.jmrenouard.fr
Les commentaires type C : 
◦Bloc de commentaire sur plusieurs ligne : /* et */ 
Les commentaires type C++ : 
◦Bloc de commentaire uni-ligne : // 
Les commentaires type shell Unix ou Perl 
◦Bloc de commentaire uni-ligne : # 
9 
LightPath 2014© - http://www.jmrenouard.fr
include 
◦Inclus le contenu d'un autre fichier 
◦Si il y a du code PHP, il est interprété et executé 
include_once 
◦Le code n'est inclus que la première fois 
require, require_once : 
◦Similaire à include et include_once 
◦Produit une erreur fatale au lieu d'une alerte 
10 
LightPath 2014© - http://www.jmrenouard.fr
11 
LightPath 2014© - http://www.jmrenouard.fr
4 types scalaires 
2 types complexes 
2 types spéciaux 
3 pseudo-types 
var_dump() affiche le type et la valeur. 
gettype() retourne le type d'une variable 
12 
LightPath 2014© - http://www.jmrenouard.fr
Booléen : 2 valeur vrai ou faux 
Entier : valeur numérique entière 
Nombre à virgule flottante 
Chaîne de caractère 
13 
LightPath 2014© - http://www.jmrenouard.fr
Les tableaux à index 
Les tableaux à clé 
Imbrication des tableaux 
Les classes 
Les objets 
14 
LightPath 2014© - http://www.jmrenouard.fr
Ressource : 
◦référence sur un type externe 
◦Données produites par certains fonctions 
NULL : valeur signifiant abscence de valeur 
◦Fonctions utilitaires : isset(), is_null() , unset() 
15 
LightPath 2014© - http://www.jmrenouard.fr
Mixed : une variable acceptant plusieurs types 
Nombre : entier ou nombre à virgule 
Callback : nom d'une fonction sous forme de chaîne 
16 
LightPath 2014© - http://www.jmrenouard.fr
17 
LightPath 2014© - http://www.jmrenouard.fr
Essentiel 
Variables pré-définies 
Portée des variables 
Les variables dynamiques 
Variables externes à PHP 
18 
LightPath 2014© - http://www.jmrenouard.fr
Variable : $+Nom de la variable 
Sensible à la casse ( $a != $A) 
Spécification d'une variable: [a-zA-Z_x7f- xff][a-zA-Z0-9_x7f-xff]* 
Pas d'espace de nommage 
Collision de nom possible 
19 
LightPath 2014© - http://www.jmrenouard.fr
$_GLOBALS: tableau des variables. 
$_SERVER: variables du serveur Web 
$_GET: variables d'un requête HTTP GET 
$_POST: variables d'un requête HTTP POST 
$_COOKIE: variables contenues dans les cookies 
20 
LightPath 2014© - http://www.jmrenouard.fr
$_FILES: variables contenant les informations sur les « fichiers Postés » 
$_ENV : variables d'environnement 
 $_REQUEST: variables d'entrée et peu sûres 
$_SESSION: variables contenues en session 
21 
LightPath 2014© - http://www.jmrenouard.fr
Global indique d'une variable fait partie de l'espace de nommage globale. 
Global est utilisé pour les variables dans les fonctions 
Static indique d'une variable n'est pas réinitialisé à la déclaration. 
22 
LightPath 2014© - http://www.jmrenouard.fr
Variable classique : 
◦$a= 'bonjour'; 
Variables variables 
◦$$a='monde'; => $bonjour='monde'; 
Utilisation 
◦echo « $a ${$a} »; 
◦echo « $a $bonjour »; 
23 
LightPath 2014© - http://www.jmrenouard.fr
Passage par les variables pré-définies : 
◦$_GET 
◦$_POST 
◦$_COOKIE 
◦$_FILES 
◦$_ENV 
24 
LightPath 2014© - http://www.jmrenouard.fr
25 
LightPath 2014© - http://www.jmrenouard.fr
Sensible à la case 
Pas d'affectation possible 
define("FOO", "something"); 
echo FOO; 
26 
LightPath 2014© - http://www.jmrenouard.fr
Pas de réservation mémoire 
Pas affectation possible 
Idéal pour des paramètres invariants 
Performance  substitution 
27 
LightPath 2014© - http://www.jmrenouard.fr
28 
LightPath 2014© - http://www.jmrenouard.fr
Tout ce qui a une valeur 
Type d'expression 
◦Fonctions 
◦Affectations 
◦Opérations 
◦Appel de fonctions 
29 
LightPath 2014© - http://www.jmrenouard.fr
30 
LightPath 2014© - http://www.jmrenouard.fr
incrémentation/décrémentation: ++ -- 
Opérateurs arithmétiques : * / % + - ** 
Opérateurs de chaîne : + - . 
Opérateurs bit à bit : << >> & ^ | 
31 
LightPath 2014© - http://www.jmrenouard.fr
Opérateurs de comparaison : < <= > >= == != === 
Opérateurs logiques : && || and or not ! 
Opérateurs d'affectation : = += -= *= /= .= %= &= |= ^= <<= >>= 
32 
LightPath 2014© - http://www.jmrenouard.fr
33 
LightPath 2014© - http://www.jmrenouard.fr
If / else / elseif 
While / do-while 
For / foreach 
Break / continue 
switch 
34 
LightPath 2014© - http://www.jmrenouard.fr
Vrai si l'expression vaut différent de 0 ou TRUE 
Exemple : 
if ($a > $b) { 
echo "a est plus grand que b"; 
} elseif ($a == $b) { 
echo "a est égal à b"; 
} else { echo "a est plus petit que b"; } 
35 
LightPath 2014© - http://www.jmrenouard.fr
Expression du TANT QUE 
Expression des boucles 
Exemple : 
$i = 1; 
while ($i <= 10) { 
echo $i++; /* La valeur affiche est $i avant l'incrémentation */ 
} 
36 
LightPath 2014© - http://www.jmrenouard.fr
Raccourci d'expression while 
for (expr1; expr2; expr3) {...} 
Peut être traduit par : 
expr1; 
while (expr2) { 
... 
expr3; } 
37 
LightPath 2014© - http://www.jmrenouard.fr
Instructions d'altération de boucle 
Break dans une boucle while, for, foreach 
◦Fin d'itération. 
◦Sortie de boucle 
Continue dans une bloucle : 
◦Terminaison de la boucle courante 
◦Passage à la boucle suivante 
38 
LightPath 2014© - http://www.jmrenouard.fr
Expression de choix 
Expression de l'alternative 
Expression du regroupement 
If / else / elseif : complexe > 3. 
Fonctionne aussi avec des chaînes 
39 
LightPath 2014© - http://www.jmrenouard.fr
40 
LightPath 2014© - http://www.jmrenouard.fr
Il s'agit d'une adresse 
Utilisé comme adresse lors de l'initialisation (=&) 
Utilisé comme variable simple le reste du temps 
Evite la recopie de zone mémoire 
Manipulation des adresses mémoire 
41 
LightPath 2014© - http://www.jmrenouard.fr
$a =1 
$b =& $a; //b est une référence sur $a 
echo $a; //1 
echo $b //1 
$a=4 
echo $b //4 
$b = 30; 
echo $a //30 
42 
LightPath 2014© - http://www.jmrenouard.fr
43 
LightPath 2014© - http://www.jmrenouard.fr
Fonction : espace de nommage particulier 
Etanche depuis l'extérieur 
Regroupement de code commun 
Paramètre : ce qui rentre de l'extérieur 
Valeur de retour ce qui sort ou reste de la fonction 
44 
LightPath 2014© - http://www.jmrenouard.fr
Pas de paramètre 
Passage par copie 
Passage par référence 
Valeur par défaut 
Paramètres variables 
45 
LightPath 2014© - http://www.jmrenouard.fr
Pas de valeur possible 
La valeur peut-être de tout type 
Référence possible 
46 
LightPath 2014© - http://www.jmrenouard.fr
Les fonctions variables 
◦$a= 'uneFonction'; 
◦$a(); 
Les fonctions internes 
◦Fonctions fournies par des modules PHP 
47 
LightPath 2014© - http://www.jmrenouard.fr
Les fonctions variables 
◦$func='toto'; 
◦function toto() { echo “cooll”;} 
◦$func(); 
Possibilités de retour de reférence 
◦function &retourne_ref() 
48 
LightPath 2014© - http://www.jmrenouard.fr
Argument par défaut 
◦function ouvrir($passwd='toto') 
Références et paramètres 
◦function lire(&$livre) 
49 
LightPath 2014© - http://www.jmrenouard.fr
Nouveautés PHP 5.6 
Possibilité de gérer des arguments variables 
<?php function fvar($p1, ...$params) { printf(‘Parametre 1: %s’, $p1); 
$i=2; 
// $params est un tableau contenant le reste des arguments. 
foreach ($params as $pn ) { 
printf(‘Parametre %d: %d’,$i, $pn); 
$i++ 
} 
?> 
LightPath 2014© - http://www.jmrenouard.fr 
50
Exemple d’appel: 
fvar(1); fvar (1, 2); fvar (1, 2, 3); fvar (1, 2, 3, 4); fvar (1, 2, 3, 4, 5); 
LightPath 2014© - http://www.jmrenouard.fr 
51
LightPath: 
◦Société de conseil et d’ingénierie 
◦Formations, Conseil, Audit et mise en oeuvre 
◦jmrenouard@lightpath.fr 
Jean-Marie RENOUARD 
◦jmrenouard@gmail.com 
◦Twitter: @jmrenouard 
◦http://www.jmrenouard.fr 
LightPath 2014© - http://www.jmrenouard.fr 
52

Weitere ähnliche Inhalte

Was ist angesagt?

Gestion de la chaîne logistique -OpenERP
Gestion de la chaîne logistique -OpenERPGestion de la chaîne logistique -OpenERP
Gestion de la chaîne logistique -OpenERP
Sanae BEKKAR
 

Was ist angesagt? (20)

Rapport de stage pfe odoo 8
Rapport de stage pfe odoo 8 Rapport de stage pfe odoo 8
Rapport de stage pfe odoo 8
 
Présentation Mémoire Master de Recherche
Présentation Mémoire Master de RecherchePrésentation Mémoire Master de Recherche
Présentation Mémoire Master de Recherche
 
Une introduction à Hive
Une introduction à HiveUne introduction à Hive
Une introduction à Hive
 
Gestion de la chaîne logistique -OpenERP
Gestion de la chaîne logistique -OpenERPGestion de la chaîne logistique -OpenERP
Gestion de la chaîne logistique -OpenERP
 
presentation cours QoS 2021 ITTT.ppt
presentation cours QoS 2021 ITTT.pptpresentation cours QoS 2021 ITTT.ppt
presentation cours QoS 2021 ITTT.ppt
 
E-Front : Plateforme d’enseignement à distance
E-Front : Plateforme d’enseignement à distanceE-Front : Plateforme d’enseignement à distance
E-Front : Plateforme d’enseignement à distance
 
Middleware
MiddlewareMiddleware
Middleware
 
Telecharger Exercices corrigés PL/SQL
Telecharger Exercices corrigés PL/SQLTelecharger Exercices corrigés PL/SQL
Telecharger Exercices corrigés PL/SQL
 
Conception d’une plateforme web d’e-Commerce au sein d’une entreprise commerc...
Conception d’une plateforme web d’e-Commerce au sein d’une entreprise commerc...Conception d’une plateforme web d’e-Commerce au sein d’une entreprise commerc...
Conception d’une plateforme web d’e-Commerce au sein d’une entreprise commerc...
 
Conception et Réalisation d’une application de Gestion SCOLAIRE
Conception et Réalisation d’une application de Gestion SCOLAIREConception et Réalisation d’une application de Gestion SCOLAIRE
Conception et Réalisation d’une application de Gestion SCOLAIRE
 
Utilisation de git avec Delphi
Utilisation de git avec DelphiUtilisation de git avec Delphi
Utilisation de git avec Delphi
 
Présentation de OpenERP/Odoo: Progiciel de Gestion Intégré Open Source
Présentation de OpenERP/Odoo: Progiciel de Gestion Intégré Open SourcePrésentation de OpenERP/Odoo: Progiciel de Gestion Intégré Open Source
Présentation de OpenERP/Odoo: Progiciel de Gestion Intégré Open Source
 
BigData_TP2: Design Patterns dans Hadoop
BigData_TP2: Design Patterns dans HadoopBigData_TP2: Design Patterns dans Hadoop
BigData_TP2: Design Patterns dans Hadoop
 
BigData_Chp2: Hadoop & Map-Reduce
BigData_Chp2: Hadoop & Map-ReduceBigData_Chp2: Hadoop & Map-Reduce
BigData_Chp2: Hadoop & Map-Reduce
 
Modélisation de données pour MongoDB
Modélisation de données pour MongoDBModélisation de données pour MongoDB
Modélisation de données pour MongoDB
 
Support de cours Spring M.youssfi
Support de cours Spring  M.youssfiSupport de cours Spring  M.youssfi
Support de cours Spring M.youssfi
 
Installation et Configuration ee JDK et de Tomcat
Installation et Configuration ee JDK et de TomcatInstallation et Configuration ee JDK et de Tomcat
Installation et Configuration ee JDK et de Tomcat
 
Alphorm.com Formation Veeam Backup & Replication 9.5
Alphorm.com Formation Veeam Backup & Replication 9.5Alphorm.com Formation Veeam Backup & Replication 9.5
Alphorm.com Formation Veeam Backup & Replication 9.5
 
Hive ppt (1)
Hive ppt (1)Hive ppt (1)
Hive ppt (1)
 
BigData_Chp4: NOSQL
BigData_Chp4: NOSQLBigData_Chp4: NOSQL
BigData_Chp4: NOSQL
 

Andere mochten auch

Andere mochten auch (20)

Ssh cookbook
Ssh cookbookSsh cookbook
Ssh cookbook
 
Présentation de PHP
Présentation de PHPPrésentation de PHP
Présentation de PHP
 
Manuel de sécurisation d'un serveur Linux
Manuel de sécurisation d'un serveur LinuxManuel de sécurisation d'un serveur Linux
Manuel de sécurisation d'un serveur Linux
 
Structure de données en PHP
Structure de données en PHPStructure de données en PHP
Structure de données en PHP
 
SQL et MySQL
SQL et MySQLSQL et MySQL
SQL et MySQL
 
Fichier XML et PHP5
Fichier XML et PHP5Fichier XML et PHP5
Fichier XML et PHP5
 
Configuration PHP5
Configuration PHP5Configuration PHP5
Configuration PHP5
 
Le client HTTP PHP5
Le client HTTP PHP5Le client HTTP PHP5
Le client HTTP PHP5
 
Email et PHP5
Email et PHP5Email et PHP5
Email et PHP5
 
Les structures de données PHP5
Les structures de données PHP5Les structures de données PHP5
Les structures de données PHP5
 
Le client FTP de PHP5
Le client FTP de PHP5Le client FTP de PHP5
Le client FTP de PHP5
 
PHP5 et les fichiers
PHP5 et les fichiersPHP5 et les fichiers
PHP5 et les fichiers
 
PHP 5 et la programmation objet
PHP 5 et la programmation objetPHP 5 et la programmation objet
PHP 5 et la programmation objet
 
Sécurité et Quaité de code PHP
Sécurité et Quaité de code PHPSécurité et Quaité de code PHP
Sécurité et Quaité de code PHP
 
MVC / Frameworks PHP
MVC / Frameworks PHPMVC / Frameworks PHP
MVC / Frameworks PHP
 
Client base de données en PHP5
Client base de données en PHP5Client base de données en PHP5
Client base de données en PHP5
 
Javascript et JQuery
Javascript et JQueryJavascript et JQuery
Javascript et JQuery
 
Gestion de formulaires en PHP
Gestion de formulaires en PHPGestion de formulaires en PHP
Gestion de formulaires en PHP
 
анимации в Windows phone
анимации в Windows phoneанимации в Windows phone
анимации в Windows phone
 
About Sage France
About Sage FranceAbout Sage France
About Sage France
 

Ähnlich wie Syntaxe du langage PHP

Patterns and OOP in PHP
Patterns and OOP in PHPPatterns and OOP in PHP
Patterns and OOP in PHP
julien pauli
 

Ähnlich wie Syntaxe du langage PHP (20)

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
 
Cours php -partie 1.pdf
Cours php -partie 1.pdfCours php -partie 1.pdf
Cours php -partie 1.pdf
 
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 7 Think php7
Php 7 Think php7Php 7 Think php7
Php 7 Think php7
 
PHP 7 et Symfony 3
PHP 7 et Symfony 3PHP 7 et Symfony 3
PHP 7 et Symfony 3
 
Open close principle, on a dit étendre, pas extends !
Open close principle, on a dit étendre, pas extends !Open close principle, on a dit étendre, pas extends !
Open close principle, on a dit étendre, pas extends !
 
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
 
Php_Mysql.pdf
Php_Mysql.pdfPhp_Mysql.pdf
Php_Mysql.pdf
 
Nouveautés php 7
Nouveautés php 7Nouveautés php 7
Nouveautés php 7
 
VIM puissance PHP = VI Improved !
VIM puissance PHP = VI Improved !VIM puissance PHP = VI Improved !
VIM puissance PHP = VI Improved !
 
Formation php pdo
Formation php pdoFormation php pdo
Formation php pdo
 
La référence Clear php
La référence Clear phpLa référence Clear php
La référence Clear php
 
Des tests modernes pour Drupal
Des tests modernes pour DrupalDes tests modernes pour Drupal
Des tests modernes pour Drupal
 
Initiation au php
Initiation au phpInitiation au php
Initiation au php
 
Initiation au php
Initiation au phpInitiation au php
Initiation au php
 
C# 7 - Nouveautés
C# 7 - NouveautésC# 7 - Nouveautés
C# 7 - Nouveautés
 
Php4 Mysql
Php4 MysqlPhp4 Mysql
Php4 Mysql
 
Paris Scala User Group #43 - Spray (Magnet Pattern) + RxScala / ElasticSearch
Paris Scala User Group #43 - Spray (Magnet Pattern) + RxScala / ElasticSearchParis Scala User Group #43 - Spray (Magnet Pattern) + RxScala / ElasticSearch
Paris Scala User Group #43 - Spray (Magnet Pattern) + RxScala / ElasticSearch
 
Atoum, le framework de tests unitaires pour PHP 5.3 simple, moderne et intuit...
Atoum, le framework de tests unitaires pour PHP 5.3 simple, moderne et intuit...Atoum, le framework de tests unitaires pour PHP 5.3 simple, moderne et intuit...
Atoum, le framework de tests unitaires pour PHP 5.3 simple, moderne et intuit...
 
Patterns and OOP in PHP
Patterns and OOP in PHPPatterns and OOP in PHP
Patterns and OOP in PHP
 

Syntaxe du langage PHP

  • 2. Le logo PHP est du domaine public http://commons.wikimedia.org/wiki/File:PHP-logo.svg Ce document est licencié sous licence ◦Attribution-NonCommercial-ShareAlike ◦CC BY-NC-SA Plus de détails: http://creativecommons.org/licenses/by-nc-sa/3.0/fr/ LightPath 2014© - http://www.jmrenouard.fr 2
  • 3. La syntaxe de base Les types Les variables Les constantes Les expressions Les opérateurs 3 LightPath 2014© - http://www.jmrenouard.fr
  • 4. Les structures de contrôle Les références Les fonctions 4 LightPath 2014© - http://www.jmrenouard.fr
  • 5. 5 LightPath 2014© - http://www.jmrenouard.fr
  • 6. Balise de code : ◦<?php ?> ◦<script language="php"> </script> Balise de variable : ◦<?= ?> ◦<?= nom ?> <?= prenom ?> Balise d'expression : ◦<? echo “bonjour” ?> Privilégier les tags PHP suivants: <?php ?> ◦Les tags courts sont déconseillés car non actifs. ◦short_open_tag=1 # Active les shorts tags 6 LightPath 2014© - http://www.jmrenouard.fr
  • 7. <p>Ceci sera ignoré.</p> <?php echo 'Alors que ceci sera analysé par PHP.'; ?> <p>Ceci sera également ignoré.</p> 7 LightPath 2014© - http://www.jmrenouard.fr
  • 8. Chaque expression ou commande se termine par un point virgule (;) <?php echo « bonjour »; echo « le monde »; ?> 8 LightPath 2014© - http://www.jmrenouard.fr
  • 9. Les commentaires type C : ◦Bloc de commentaire sur plusieurs ligne : /* et */ Les commentaires type C++ : ◦Bloc de commentaire uni-ligne : // Les commentaires type shell Unix ou Perl ◦Bloc de commentaire uni-ligne : # 9 LightPath 2014© - http://www.jmrenouard.fr
  • 10. include ◦Inclus le contenu d'un autre fichier ◦Si il y a du code PHP, il est interprété et executé include_once ◦Le code n'est inclus que la première fois require, require_once : ◦Similaire à include et include_once ◦Produit une erreur fatale au lieu d'une alerte 10 LightPath 2014© - http://www.jmrenouard.fr
  • 11. 11 LightPath 2014© - http://www.jmrenouard.fr
  • 12. 4 types scalaires 2 types complexes 2 types spéciaux 3 pseudo-types var_dump() affiche le type et la valeur. gettype() retourne le type d'une variable 12 LightPath 2014© - http://www.jmrenouard.fr
  • 13. Booléen : 2 valeur vrai ou faux Entier : valeur numérique entière Nombre à virgule flottante Chaîne de caractère 13 LightPath 2014© - http://www.jmrenouard.fr
  • 14. Les tableaux à index Les tableaux à clé Imbrication des tableaux Les classes Les objets 14 LightPath 2014© - http://www.jmrenouard.fr
  • 15. Ressource : ◦référence sur un type externe ◦Données produites par certains fonctions NULL : valeur signifiant abscence de valeur ◦Fonctions utilitaires : isset(), is_null() , unset() 15 LightPath 2014© - http://www.jmrenouard.fr
  • 16. Mixed : une variable acceptant plusieurs types Nombre : entier ou nombre à virgule Callback : nom d'une fonction sous forme de chaîne 16 LightPath 2014© - http://www.jmrenouard.fr
  • 17. 17 LightPath 2014© - http://www.jmrenouard.fr
  • 18. Essentiel Variables pré-définies Portée des variables Les variables dynamiques Variables externes à PHP 18 LightPath 2014© - http://www.jmrenouard.fr
  • 19. Variable : $+Nom de la variable Sensible à la casse ( $a != $A) Spécification d'une variable: [a-zA-Z_x7f- xff][a-zA-Z0-9_x7f-xff]* Pas d'espace de nommage Collision de nom possible 19 LightPath 2014© - http://www.jmrenouard.fr
  • 20. $_GLOBALS: tableau des variables. $_SERVER: variables du serveur Web $_GET: variables d'un requête HTTP GET $_POST: variables d'un requête HTTP POST $_COOKIE: variables contenues dans les cookies 20 LightPath 2014© - http://www.jmrenouard.fr
  • 21. $_FILES: variables contenant les informations sur les « fichiers Postés » $_ENV : variables d'environnement  $_REQUEST: variables d'entrée et peu sûres $_SESSION: variables contenues en session 21 LightPath 2014© - http://www.jmrenouard.fr
  • 22. Global indique d'une variable fait partie de l'espace de nommage globale. Global est utilisé pour les variables dans les fonctions Static indique d'une variable n'est pas réinitialisé à la déclaration. 22 LightPath 2014© - http://www.jmrenouard.fr
  • 23. Variable classique : ◦$a= 'bonjour'; Variables variables ◦$$a='monde'; => $bonjour='monde'; Utilisation ◦echo « $a ${$a} »; ◦echo « $a $bonjour »; 23 LightPath 2014© - http://www.jmrenouard.fr
  • 24. Passage par les variables pré-définies : ◦$_GET ◦$_POST ◦$_COOKIE ◦$_FILES ◦$_ENV 24 LightPath 2014© - http://www.jmrenouard.fr
  • 25. 25 LightPath 2014© - http://www.jmrenouard.fr
  • 26. Sensible à la case Pas d'affectation possible define("FOO", "something"); echo FOO; 26 LightPath 2014© - http://www.jmrenouard.fr
  • 27. Pas de réservation mémoire Pas affectation possible Idéal pour des paramètres invariants Performance  substitution 27 LightPath 2014© - http://www.jmrenouard.fr
  • 28. 28 LightPath 2014© - http://www.jmrenouard.fr
  • 29. Tout ce qui a une valeur Type d'expression ◦Fonctions ◦Affectations ◦Opérations ◦Appel de fonctions 29 LightPath 2014© - http://www.jmrenouard.fr
  • 30. 30 LightPath 2014© - http://www.jmrenouard.fr
  • 31. incrémentation/décrémentation: ++ -- Opérateurs arithmétiques : * / % + - ** Opérateurs de chaîne : + - . Opérateurs bit à bit : << >> & ^ | 31 LightPath 2014© - http://www.jmrenouard.fr
  • 32. Opérateurs de comparaison : < <= > >= == != === Opérateurs logiques : && || and or not ! Opérateurs d'affectation : = += -= *= /= .= %= &= |= ^= <<= >>= 32 LightPath 2014© - http://www.jmrenouard.fr
  • 33. 33 LightPath 2014© - http://www.jmrenouard.fr
  • 34. If / else / elseif While / do-while For / foreach Break / continue switch 34 LightPath 2014© - http://www.jmrenouard.fr
  • 35. Vrai si l'expression vaut différent de 0 ou TRUE Exemple : if ($a > $b) { echo "a est plus grand que b"; } elseif ($a == $b) { echo "a est égal à b"; } else { echo "a est plus petit que b"; } 35 LightPath 2014© - http://www.jmrenouard.fr
  • 36. Expression du TANT QUE Expression des boucles Exemple : $i = 1; while ($i <= 10) { echo $i++; /* La valeur affiche est $i avant l'incrémentation */ } 36 LightPath 2014© - http://www.jmrenouard.fr
  • 37. Raccourci d'expression while for (expr1; expr2; expr3) {...} Peut être traduit par : expr1; while (expr2) { ... expr3; } 37 LightPath 2014© - http://www.jmrenouard.fr
  • 38. Instructions d'altération de boucle Break dans une boucle while, for, foreach ◦Fin d'itération. ◦Sortie de boucle Continue dans une bloucle : ◦Terminaison de la boucle courante ◦Passage à la boucle suivante 38 LightPath 2014© - http://www.jmrenouard.fr
  • 39. Expression de choix Expression de l'alternative Expression du regroupement If / else / elseif : complexe > 3. Fonctionne aussi avec des chaînes 39 LightPath 2014© - http://www.jmrenouard.fr
  • 40. 40 LightPath 2014© - http://www.jmrenouard.fr
  • 41. Il s'agit d'une adresse Utilisé comme adresse lors de l'initialisation (=&) Utilisé comme variable simple le reste du temps Evite la recopie de zone mémoire Manipulation des adresses mémoire 41 LightPath 2014© - http://www.jmrenouard.fr
  • 42. $a =1 $b =& $a; //b est une référence sur $a echo $a; //1 echo $b //1 $a=4 echo $b //4 $b = 30; echo $a //30 42 LightPath 2014© - http://www.jmrenouard.fr
  • 43. 43 LightPath 2014© - http://www.jmrenouard.fr
  • 44. Fonction : espace de nommage particulier Etanche depuis l'extérieur Regroupement de code commun Paramètre : ce qui rentre de l'extérieur Valeur de retour ce qui sort ou reste de la fonction 44 LightPath 2014© - http://www.jmrenouard.fr
  • 45. Pas de paramètre Passage par copie Passage par référence Valeur par défaut Paramètres variables 45 LightPath 2014© - http://www.jmrenouard.fr
  • 46. Pas de valeur possible La valeur peut-être de tout type Référence possible 46 LightPath 2014© - http://www.jmrenouard.fr
  • 47. Les fonctions variables ◦$a= 'uneFonction'; ◦$a(); Les fonctions internes ◦Fonctions fournies par des modules PHP 47 LightPath 2014© - http://www.jmrenouard.fr
  • 48. Les fonctions variables ◦$func='toto'; ◦function toto() { echo “cooll”;} ◦$func(); Possibilités de retour de reférence ◦function &retourne_ref() 48 LightPath 2014© - http://www.jmrenouard.fr
  • 49. Argument par défaut ◦function ouvrir($passwd='toto') Références et paramètres ◦function lire(&$livre) 49 LightPath 2014© - http://www.jmrenouard.fr
  • 50. Nouveautés PHP 5.6 Possibilité de gérer des arguments variables <?php function fvar($p1, ...$params) { printf(‘Parametre 1: %s’, $p1); $i=2; // $params est un tableau contenant le reste des arguments. foreach ($params as $pn ) { printf(‘Parametre %d: %d’,$i, $pn); $i++ } ?> LightPath 2014© - http://www.jmrenouard.fr 50
  • 51. Exemple d’appel: fvar(1); fvar (1, 2); fvar (1, 2, 3); fvar (1, 2, 3, 4); fvar (1, 2, 3, 4, 5); LightPath 2014© - http://www.jmrenouard.fr 51
  • 52. LightPath: ◦Société de conseil et d’ingénierie ◦Formations, Conseil, Audit et mise en oeuvre ◦jmrenouard@lightpath.fr Jean-Marie RENOUARD ◦jmrenouard@gmail.com ◦Twitter: @jmrenouard ◦http://www.jmrenouard.fr LightPath 2014© - http://www.jmrenouard.fr 52