SlideShare une entreprise Scribd logo
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

Contenu connexe

Tendances

Formation Script MS-DOS.ppt
Formation Script MS-DOS.pptFormation Script MS-DOS.ppt
Formation Script MS-DOS.ppt
khezzanedallel
 
Implementation d'un portail captif cas de pfsense produit par bamba bamoussa
Implementation d'un portail captif  cas de pfsense produit par bamba bamoussa Implementation d'un portail captif  cas de pfsense produit par bamba bamoussa
Implementation d'un portail captif cas de pfsense produit par bamba bamoussa
Bamoussa Bamba
 
Architecture de Von Neumann & Harvard
Architecture de Von Neumann & HarvardArchitecture de Von Neumann & Harvard
Architecture de Von Neumann & Harvard
Lorenzo BOY-TOUMA AIBA
 
Le transport maritime (Exposé)
Le transport maritime (Exposé)Le transport maritime (Exposé)
Le transport maritime (Exposé)
RAMZI EL IDRISSI
 
ETUDE ET MISE EN PLACE DE LA SOLUTION VOIP OVER LTE, DIMENSIONNEMENT ET MESUR...
ETUDE ET MISE EN PLACE DE LA SOLUTION VOIP OVER LTE, DIMENSIONNEMENT ET MESUR...ETUDE ET MISE EN PLACE DE LA SOLUTION VOIP OVER LTE, DIMENSIONNEMENT ET MESUR...
ETUDE ET MISE EN PLACE DE LA SOLUTION VOIP OVER LTE, DIMENSIONNEMENT ET MESUR...
Sidali Bhs
 
Comment être agile dans un contexte non lié aux TI ?
Comment être agile dans un contexte non lié aux TI ?Comment être agile dans un contexte non lié aux TI ?
Comment être agile dans un contexte non lié aux TI ?
Pyxis Technologies
 
Alphorm.com Formation CCNA 200-301 version 2020 (1of6) : Les Fondamentaux des...
Alphorm.com Formation CCNA 200-301 version 2020 (1of6) : Les Fondamentaux des...Alphorm.com Formation CCNA 200-301 version 2020 (1of6) : Les Fondamentaux des...
Alphorm.com Formation CCNA 200-301 version 2020 (1of6) : Les Fondamentaux des...
Alphorm
 
Gestion de-soutenance
Gestion de-soutenanceGestion de-soutenance
Gestion de-soutenance
VatosoaRazafindrazak
 
Présentation blockchain v2
Présentation blockchain v2Présentation blockchain v2
Présentation blockchain v2
Amine HAMOUDA
 
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
Alphorm
 
Un exemple élémentaire d'application MVC en PHP
Un exemple élémentaire d'application MVC en PHPUn exemple élémentaire d'application MVC en PHP
Un exemple élémentaire d'application MVC en PHP
Kristen Le Liboux
 
présentation soutenance PFE.ppt
présentation soutenance PFE.pptprésentation soutenance PFE.ppt
présentation soutenance PFE.pptMohamed Ben Bouzid
 
Projet d'implantation d'une nouvelle station-service Ultramar à Laval
Projet d'implantation d'une nouvelle station-service Ultramar à LavalProjet d'implantation d'une nouvelle station-service Ultramar à Laval
Projet d'implantation d'une nouvelle station-service Ultramar à Laval
Nicholas Roy
 
Presentation de gestionnaire de bibliothèque
Presentation de gestionnaire de bibliothèquePresentation de gestionnaire de bibliothèque
Presentation de gestionnaire de bibliothèque
Daoues Amine
 
Formation JPA Avancé / Hibernate gratuite par Ippon 2014
Formation JPA Avancé / Hibernate gratuite par Ippon 2014Formation JPA Avancé / Hibernate gratuite par Ippon 2014
Formation JPA Avancé / Hibernate gratuite par Ippon 2014
Ippon
 
Sécurité des réseaux sans fil WIFI
Sécurité des réseaux sans fil WIFISécurité des réseaux sans fil WIFI
Sécurité des réseaux sans fil WIFI
Soukaina Boujadi
 
Cloud computing
Cloud computingCloud computing
Cloud computing
Heithem Abbes
 
SDN OpenDaylight
SDN OpenDaylightSDN OpenDaylight
SDN OpenDaylight
Mokhless Hachicha
 

Tendances (20)

Formation Script MS-DOS.ppt
Formation Script MS-DOS.pptFormation Script MS-DOS.ppt
Formation Script MS-DOS.ppt
 
Protocole Diameter
Protocole DiameterProtocole Diameter
Protocole Diameter
 
Implementation d'un portail captif cas de pfsense produit par bamba bamoussa
Implementation d'un portail captif  cas de pfsense produit par bamba bamoussa Implementation d'un portail captif  cas de pfsense produit par bamba bamoussa
Implementation d'un portail captif cas de pfsense produit par bamba bamoussa
 
Architecture de Von Neumann & Harvard
Architecture de Von Neumann & HarvardArchitecture de Von Neumann & Harvard
Architecture de Von Neumann & Harvard
 
Expose dns
Expose dnsExpose dns
Expose dns
 
Le transport maritime (Exposé)
Le transport maritime (Exposé)Le transport maritime (Exposé)
Le transport maritime (Exposé)
 
ETUDE ET MISE EN PLACE DE LA SOLUTION VOIP OVER LTE, DIMENSIONNEMENT ET MESUR...
ETUDE ET MISE EN PLACE DE LA SOLUTION VOIP OVER LTE, DIMENSIONNEMENT ET MESUR...ETUDE ET MISE EN PLACE DE LA SOLUTION VOIP OVER LTE, DIMENSIONNEMENT ET MESUR...
ETUDE ET MISE EN PLACE DE LA SOLUTION VOIP OVER LTE, DIMENSIONNEMENT ET MESUR...
 
Comment être agile dans un contexte non lié aux TI ?
Comment être agile dans un contexte non lié aux TI ?Comment être agile dans un contexte non lié aux TI ?
Comment être agile dans un contexte non lié aux TI ?
 
Alphorm.com Formation CCNA 200-301 version 2020 (1of6) : Les Fondamentaux des...
Alphorm.com Formation CCNA 200-301 version 2020 (1of6) : Les Fondamentaux des...Alphorm.com Formation CCNA 200-301 version 2020 (1of6) : Les Fondamentaux des...
Alphorm.com Formation CCNA 200-301 version 2020 (1of6) : Les Fondamentaux des...
 
Gestion de-soutenance
Gestion de-soutenanceGestion de-soutenance
Gestion de-soutenance
 
Présentation blockchain v2
Présentation blockchain v2Présentation blockchain v2
Présentation blockchain v2
 
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
 
Un exemple élémentaire d'application MVC en PHP
Un exemple élémentaire d'application MVC en PHPUn exemple élémentaire d'application MVC en PHP
Un exemple élémentaire d'application MVC en PHP
 
présentation soutenance PFE.ppt
présentation soutenance PFE.pptprésentation soutenance PFE.ppt
présentation soutenance PFE.ppt
 
Projet d'implantation d'une nouvelle station-service Ultramar à Laval
Projet d'implantation d'une nouvelle station-service Ultramar à LavalProjet d'implantation d'une nouvelle station-service Ultramar à Laval
Projet d'implantation d'une nouvelle station-service Ultramar à Laval
 
Presentation de gestionnaire de bibliothèque
Presentation de gestionnaire de bibliothèquePresentation de gestionnaire de bibliothèque
Presentation de gestionnaire de bibliothèque
 
Formation JPA Avancé / Hibernate gratuite par Ippon 2014
Formation JPA Avancé / Hibernate gratuite par Ippon 2014Formation JPA Avancé / Hibernate gratuite par Ippon 2014
Formation JPA Avancé / Hibernate gratuite par Ippon 2014
 
Sécurité des réseaux sans fil WIFI
Sécurité des réseaux sans fil WIFISécurité des réseaux sans fil WIFI
Sécurité des réseaux sans fil WIFI
 
Cloud computing
Cloud computingCloud computing
Cloud computing
 
SDN OpenDaylight
SDN OpenDaylightSDN OpenDaylight
SDN OpenDaylight
 

En vedette

Ssh cookbook
Ssh cookbookSsh cookbook
Ssh cookbook
Jean-Marie Renouard
 
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
Jean-Marie Renouard
 
Structure de données en PHP
Structure de données en PHPStructure de données en PHP
Structure de données en PHP
Jean-Marie Renouard
 
SQL et MySQL
SQL et MySQLSQL et MySQL
SQL et MySQL
Jean-Marie Renouard
 
Fichier XML et PHP5
Fichier XML et PHP5Fichier XML et PHP5
Fichier XML et PHP5
Jean-Marie Renouard
 
Configuration PHP5
Configuration PHP5Configuration PHP5
Configuration PHP5
Jean-Marie Renouard
 
Le client HTTP PHP5
Le client HTTP PHP5Le client HTTP PHP5
Le client HTTP PHP5
Jean-Marie Renouard
 
Email et PHP5
Email et PHP5Email et PHP5
Email et PHP5
Jean-Marie Renouard
 
Les structures de données PHP5
Les structures de données PHP5Les structures de données PHP5
Les structures de données PHP5
Jean-Marie Renouard
 
Le client FTP de PHP5
Le client FTP de PHP5Le client FTP de PHP5
Le client FTP de PHP5
Jean-Marie Renouard
 
PHP5 et les fichiers
PHP5 et les fichiersPHP5 et les fichiers
PHP5 et les fichiers
Jean-Marie Renouard
 
PHP 5 et la programmation objet
PHP 5 et la programmation objetPHP 5 et la programmation objet
PHP 5 et la programmation objet
Jean-Marie Renouard
 
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
Jean-Marie Renouard
 
MVC / Frameworks PHP
MVC / Frameworks PHPMVC / Frameworks PHP
MVC / Frameworks PHP
Jean-Marie Renouard
 
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
Jean-Marie Renouard
 
Javascript et JQuery
Javascript et JQueryJavascript et JQuery
Javascript et JQuery
Jean-Marie Renouard
 
Gestion de formulaires en PHP
Gestion de formulaires en PHPGestion de formulaires en PHP
Gestion de formulaires en PHP
Jean-Marie Renouard
 
анимации в Windows phone
анимации в Windows phoneанимации в Windows phone
анимации в Windows phone
Filipp Panfilov
 
About Sage France
About Sage FranceAbout Sage France
About Sage France
Sage france
 
Présentation de Node.js
Présentation de Node.jsPrésentation de Node.js
Présentation de Node.js
Mickael Couzinet
 

En vedette (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
 

Similaire à Syntaxe du langage PHP

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
 
Cours php -partie 1.pdf
Cours php -partie 1.pdfCours php -partie 1.pdf
Cours php -partie 1.pdf
ssuserc46a93
 
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 7 Think php7
Php 7 Think php7Php 7 Think php7
Php 7 Think php7
neuros
 
PHP 7 et Symfony 3
PHP 7 et Symfony 3PHP 7 et Symfony 3
PHP 7 et Symfony 3
Eddy 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.pdf
rachidimstapha
 
Php_Mysql.pdf
Php_Mysql.pdfPhp_Mysql.pdf
Php_Mysql.pdf
ETTAMRY
 
Nouveautés php 7
Nouveautés php 7Nouveautés php 7
Nouveautés php 7
Cyrille Grandval
 
VIM puissance PHP = VI Improved !
VIM puissance PHP = VI Improved !VIM puissance PHP = VI Improved !
VIM puissance PHP = VI Improved !
Frederic Hardy
 
Formation php pdo
Formation php pdoFormation php pdo
Formation php pdo
Souhaibou Salla
 
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
 
Des tests modernes pour Drupal
Des tests modernes pour DrupalDes tests modernes pour Drupal
Des tests modernes pour Drupal
Christophe Villeneuve
 
Initiation au php
Initiation au phpInitiation au php
Initiation au php
StrasWeb
 
Initiation au php
Initiation au phpInitiation au php
Initiation au php
Cédric Leclinche
 
C# 7 - Nouveautés
C# 7 - NouveautésC# 7 - Nouveautés
C# 7 - Nouveautés
James RAVAILLE
 
Php4 Mysql
Php4 MysqlPhp4 Mysql
Php4 Mysql
HamdiBaklouti
 
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
Mourad 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
 

Similaire à 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
 

Dernier

Le support de présentation des Signaux 2024
Le support de présentation des Signaux 2024Le support de présentation des Signaux 2024
Le support de présentation des Signaux 2024
UNITECBordeaux
 
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'universitéDe l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
Université de Franche-Comté
 
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
OCTO Technology
 
OCTO TALKS : 4 Tech Trends du Software Engineering.pdf
OCTO TALKS : 4 Tech Trends du Software Engineering.pdfOCTO TALKS : 4 Tech Trends du Software Engineering.pdf
OCTO TALKS : 4 Tech Trends du Software Engineering.pdf
OCTO Technology
 
Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...
Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...
Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...
OCTO Technology
 
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Laurent Speyser
 

Dernier (6)

Le support de présentation des Signaux 2024
Le support de présentation des Signaux 2024Le support de présentation des Signaux 2024
Le support de présentation des Signaux 2024
 
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'universitéDe l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
 
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
 
OCTO TALKS : 4 Tech Trends du Software Engineering.pdf
OCTO TALKS : 4 Tech Trends du Software Engineering.pdfOCTO TALKS : 4 Tech Trends du Software Engineering.pdf
OCTO TALKS : 4 Tech Trends du Software Engineering.pdf
 
Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...
Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...
Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...
 
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
 

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