SlideShare a Scribd company logo
1 of 52
Download to read offline
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

More Related Content

What's hot

Pfe master fst_final_decembre2015
Pfe master fst_final_decembre2015Pfe master fst_final_decembre2015
Pfe master fst_final_decembre2015Ghali Rahma
 
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)ENSET, Université Hassan II Casablanca
 
Alphorm.com Formation Certification NSE4 - Fortinet Fortigate Infrastructure 6.x
Alphorm.com Formation Certification NSE4 - Fortinet Fortigate Infrastructure 6.xAlphorm.com Formation Certification NSE4 - Fortinet Fortigate Infrastructure 6.x
Alphorm.com Formation Certification NSE4 - Fortinet Fortigate Infrastructure 6.xAlphorm
 
Torkhanikarima-MémoireMastereProRx&telecom-FST2015-, Supervision et Monitorin...
Torkhanikarima-MémoireMastereProRx&telecom-FST2015-, Supervision et Monitorin...Torkhanikarima-MémoireMastereProRx&telecom-FST2015-, Supervision et Monitorin...
Torkhanikarima-MémoireMastereProRx&telecom-FST2015-, Supervision et Monitorin...Karima Torkhani
 
cours-ADMINISTRATION DUN RESEAU INFORMATIQUE.pdf
cours-ADMINISTRATION DUN RESEAU INFORMATIQUE.pdfcours-ADMINISTRATION DUN RESEAU INFORMATIQUE.pdf
cours-ADMINISTRATION DUN RESEAU INFORMATIQUE.pdfGodefroyCheumaniTche1
 
Projet de fin d étude (1)
Projet de fin d étude (1)Projet de fin d étude (1)
Projet de fin d étude (1)Sanaa Guissar
 
Presentation pfe ingenieur d etat securite reseau et systemes
Presentation pfe ingenieur d etat securite reseau et systemesPresentation pfe ingenieur d etat securite reseau et systemes
Presentation pfe ingenieur d etat securite reseau et systemesHicham Moujahid
 
Rapport Pfe Application Web e-commerce Symfony2
Rapport Pfe Application Web e-commerce Symfony2Rapport Pfe Application Web e-commerce Symfony2
Rapport Pfe Application Web e-commerce Symfony2Ben Abdelwahed Slim
 
Partie 2: Angular
Partie 2: AngularPartie 2: Angular
Partie 2: AngularHabib Ayad
 
Présentation PFE (Conception et développement d'une application web && mobile...
Présentation PFE (Conception et développement d'une application web && mobile...Présentation PFE (Conception et développement d'une application web && mobile...
Présentation PFE (Conception et développement d'une application web && mobile...Ramzi Noumairi
 
Conception et Réalisation d’une Plateforme Web de Gestion des achats
Conception et Réalisation d’une Plateforme Web de Gestion des achats Conception et Réalisation d’une Plateforme Web de Gestion des achats
Conception et Réalisation d’une Plateforme Web de Gestion des achats Ayed CHOKRI
 
Alphorm.com Formation Hacking et Sécurité 2020 (3of4) : Attaques Réseaux, Sys...
Alphorm.com Formation Hacking et Sécurité 2020 (3of4) : Attaques Réseaux, Sys...Alphorm.com Formation Hacking et Sécurité 2020 (3of4) : Attaques Réseaux, Sys...
Alphorm.com Formation Hacking et Sécurité 2020 (3of4) : Attaques Réseaux, Sys...Alphorm
 
Ingénieur de conception télécommunications et réseaux
Ingénieur de conception télécommunications et réseaux Ingénieur de conception télécommunications et réseaux
Ingénieur de conception télécommunications et réseaux josephMBOUA
 
Rapport de stage TOIP/VOIP
Rapport de stage TOIP/VOIPRapport de stage TOIP/VOIP
Rapport de stage TOIP/VOIPMounir Kaali
 
Rapport PFE-Implémentation de la solution Dual-Homing
Rapport PFE-Implémentation de la solution Dual-Homing Rapport PFE-Implémentation de la solution Dual-Homing
Rapport PFE-Implémentation de la solution Dual-Homing Hassane Sennouni
 
Ecole ESMA : Projet Fin de semestre - Application de gestion d'une école
Ecole ESMA : Projet Fin de semestre - Application de gestion d'une école Ecole ESMA : Projet Fin de semestre - Application de gestion d'une école
Ecole ESMA : Projet Fin de semestre - Application de gestion d'une école Mehdi Hamime
 
rapport PFE ingénieur génie logiciel INSAT
rapport PFE ingénieur génie logiciel INSATrapport PFE ingénieur génie logiciel INSAT
rapport PFE ingénieur génie logiciel INSATSiwar GUEMRI
 

What's hot (20)

Pfe master fst_final_decembre2015
Pfe master fst_final_decembre2015Pfe master fst_final_decembre2015
Pfe master fst_final_decembre2015
 
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
 
Alphorm.com Formation Certification NSE4 - Fortinet Fortigate Infrastructure 6.x
Alphorm.com Formation Certification NSE4 - Fortinet Fortigate Infrastructure 6.xAlphorm.com Formation Certification NSE4 - Fortinet Fortigate Infrastructure 6.x
Alphorm.com Formation Certification NSE4 - Fortinet Fortigate Infrastructure 6.x
 
Torkhanikarima-MémoireMastereProRx&telecom-FST2015-, Supervision et Monitorin...
Torkhanikarima-MémoireMastereProRx&telecom-FST2015-, Supervision et Monitorin...Torkhanikarima-MémoireMastereProRx&telecom-FST2015-, Supervision et Monitorin...
Torkhanikarima-MémoireMastereProRx&telecom-FST2015-, Supervision et Monitorin...
 
cours-ADMINISTRATION DUN RESEAU INFORMATIQUE.pdf
cours-ADMINISTRATION DUN RESEAU INFORMATIQUE.pdfcours-ADMINISTRATION DUN RESEAU INFORMATIQUE.pdf
cours-ADMINISTRATION DUN RESEAU INFORMATIQUE.pdf
 
Projet de fin d étude (1)
Projet de fin d étude (1)Projet de fin d étude (1)
Projet de fin d étude (1)
 
Presentation pfe ingenieur d etat securite reseau et systemes
Presentation pfe ingenieur d etat securite reseau et systemesPresentation pfe ingenieur d etat securite reseau et systemes
Presentation pfe ingenieur d etat securite reseau et systemes
 
CV REBAI Hamida
CV REBAI HamidaCV REBAI Hamida
CV REBAI Hamida
 
Rapport Pfe Application Web e-commerce Symfony2
Rapport Pfe Application Web e-commerce Symfony2Rapport Pfe Application Web e-commerce Symfony2
Rapport Pfe Application Web e-commerce Symfony2
 
Partie 2: Angular
Partie 2: AngularPartie 2: Angular
Partie 2: Angular
 
Présentation PFE (Conception et développement d'une application web && mobile...
Présentation PFE (Conception et développement d'une application web && mobile...Présentation PFE (Conception et développement d'une application web && mobile...
Présentation PFE (Conception et développement d'une application web && mobile...
 
Conception et Réalisation d’une Plateforme Web de Gestion des achats
Conception et Réalisation d’une Plateforme Web de Gestion des achats Conception et Réalisation d’une Plateforme Web de Gestion des achats
Conception et Réalisation d’une Plateforme Web de Gestion des achats
 
Alphorm.com Formation Hacking et Sécurité 2020 (3of4) : Attaques Réseaux, Sys...
Alphorm.com Formation Hacking et Sécurité 2020 (3of4) : Attaques Réseaux, Sys...Alphorm.com Formation Hacking et Sécurité 2020 (3of4) : Attaques Réseaux, Sys...
Alphorm.com Formation Hacking et Sécurité 2020 (3of4) : Attaques Réseaux, Sys...
 
E-learning
E-learningE-learning
E-learning
 
Ingénieur de conception télécommunications et réseaux
Ingénieur de conception télécommunications et réseaux Ingénieur de conception télécommunications et réseaux
Ingénieur de conception télécommunications et réseaux
 
Rapport de stage TOIP/VOIP
Rapport de stage TOIP/VOIPRapport de stage TOIP/VOIP
Rapport de stage TOIP/VOIP
 
Rapport PFE-Implémentation de la solution Dual-Homing
Rapport PFE-Implémentation de la solution Dual-Homing Rapport PFE-Implémentation de la solution Dual-Homing
Rapport PFE-Implémentation de la solution Dual-Homing
 
Ecole ESMA : Projet Fin de semestre - Application de gestion d'une école
Ecole ESMA : Projet Fin de semestre - Application de gestion d'une école Ecole ESMA : Projet Fin de semestre - Application de gestion d'une école
Ecole ESMA : Projet Fin de semestre - Application de gestion d'une école
 
rapport PFE ingénieur génie logiciel INSAT
rapport PFE ingénieur génie logiciel INSATrapport PFE ingénieur génie logiciel INSAT
rapport PFE ingénieur génie logiciel INSAT
 
Support JEE Servlet Jsp MVC M.Youssfi
Support JEE Servlet Jsp MVC M.YoussfiSupport JEE Servlet Jsp MVC M.Youssfi
Support JEE Servlet Jsp MVC M.Youssfi
 

Viewers also liked (20)

Ssh cookbook
Ssh cookbookSsh cookbook
Ssh cookbook
 
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
 
Présentation de Node.js
Présentation de Node.jsPrésentation de Node.js
Présentation de Node.js
 

Similar to Syntaxe du langage PHP

Cours php -partie 1.pdf
Cours php -partie 1.pdfCours php -partie 1.pdf
Cours php -partie 1.pdfssuserc46a93
 
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 - afupJulien Vinber
 
Php 7 Think php7
Php 7 Think php7Php 7 Think php7
Php 7 Think php7neuros
 
PHP 7 et Symfony 3
PHP 7 et Symfony 3PHP 7 et Symfony 3
PHP 7 et Symfony 3Eddy RICHARD
 
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 !Engineor
 
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.pdfrachidimstapha
 
Php_Mysql.pdf
Php_Mysql.pdfPhp_Mysql.pdf
Php_Mysql.pdfETTAMRY
 
VIM puissance PHP = VI Improved !
VIM puissance PHP = VI Improved !VIM puissance PHP = VI Improved !
VIM puissance PHP = VI Improved !Frederic Hardy
 
La référence Clear php
La référence Clear phpLa référence Clear php
La référence Clear phpDamien Seguy
 
Initiation au php
Initiation au phpInitiation au php
Initiation au phpStrasWeb
 
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 / ElasticSearchMourad DACHRAOUI
 
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...fdussert
 
Patterns and OOP in PHP
Patterns and OOP in PHPPatterns and OOP in PHP
Patterns and OOP in PHPjulien pauli
 

Similar to 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