Syntaxe du langage PHP

52
Jean-Marie Renouard LightPath 2014©

description

Présentation de la syntaxe de base de PHP

Transcript of Syntaxe du langage PHP

Page 1: Syntaxe du langage PHP

Jean-Marie Renouard LightPath 2014©

Page 2: Syntaxe du langage PHP

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

Page 3: Syntaxe du langage PHP

La syntaxe de base

Les types

Les variables

Les constantes

Les expressions

Les opérateurs

3 LightPath 2014© - http://www.jmrenouard.fr

Page 4: Syntaxe du langage PHP

Les structures de contrôle

Les références

Les fonctions

4 LightPath 2014© - http://www.jmrenouard.fr

Page 5: Syntaxe du langage PHP

5 LightPath 2014© - http://www.jmrenouard.fr

Page 6: Syntaxe du langage PHP

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

Page 7: Syntaxe du langage PHP

<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

Page 8: Syntaxe du langage PHP

Chaque expression ou commande se termine par un point virgule (;)

<?php

echo « bonjour »;

echo « le monde »;

?>

8 LightPath 2014© - http://www.jmrenouard.fr

Page 9: Syntaxe du langage PHP

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

Page 10: Syntaxe du langage PHP

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

Page 11: Syntaxe du langage PHP

11 LightPath 2014© - http://www.jmrenouard.fr

Page 12: Syntaxe du langage PHP

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

Page 13: Syntaxe du langage PHP

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

Page 14: Syntaxe du langage PHP

Les tableaux à index

Les tableaux à clé

Imbrication des tableaux

Les classes

Les objets

14 LightPath 2014© - http://www.jmrenouard.fr

Page 15: Syntaxe du langage PHP

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

Page 16: Syntaxe du langage PHP

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

Page 17: Syntaxe du langage PHP

17 LightPath 2014© - http://www.jmrenouard.fr

Page 18: Syntaxe du langage PHP

Essentiel

Variables pré-définies

Portée des variables

Les variables dynamiques

Variables externes à PHP

18 LightPath 2014© - http://www.jmrenouard.fr

Page 19: Syntaxe du langage PHP

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

Page 20: Syntaxe du langage PHP

$_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

Page 21: Syntaxe du langage PHP

$_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

Page 22: Syntaxe du langage PHP

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

Page 23: Syntaxe du langage PHP

Variable classique :

◦ $a= 'bonjour';

Variables variables

◦ $$a='monde'; => $bonjour='monde';

Utilisation

◦ echo « $a ${$a} »;

◦ echo « $a $bonjour »;

23 LightPath 2014© - http://www.jmrenouard.fr

Page 24: Syntaxe du langage PHP

Passage par les variables pré-définies :

◦ $_GET

◦ $_POST

◦ $_COOKIE

◦ $_FILES

◦ $_ENV

24 LightPath 2014© - http://www.jmrenouard.fr

Page 25: Syntaxe du langage PHP

25 LightPath 2014© - http://www.jmrenouard.fr

Page 26: Syntaxe du langage PHP

Sensible à la case

Pas d'affectation possible

define("FOO", "something");

echo FOO;

26 LightPath 2014© - http://www.jmrenouard.fr

Page 27: Syntaxe du langage PHP

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

Page 28: Syntaxe du langage PHP

28 LightPath 2014© - http://www.jmrenouard.fr

Page 29: Syntaxe du langage PHP

Tout ce qui a une valeur

Type d'expression

◦ Fonctions

◦ Affectations

◦ Opérations

◦ Appel de fonctions

29 LightPath 2014© - http://www.jmrenouard.fr

Page 30: Syntaxe du langage PHP

30 LightPath 2014© - http://www.jmrenouard.fr

Page 31: Syntaxe du langage PHP

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

Page 32: Syntaxe du langage PHP

Opérateurs de comparaison : < <= > >= == != ===

Opérateurs logiques : && || and or not !

Opérateurs d'affectation : = += -= *= /= .= %= &= |= ^= <<= >>=

32 LightPath 2014© - http://www.jmrenouard.fr

Page 33: Syntaxe du langage PHP

33 LightPath 2014© - http://www.jmrenouard.fr

Page 34: Syntaxe du langage PHP

If / else / elseif

While / do-while

For / foreach

Break / continue

switch

34 LightPath 2014© - http://www.jmrenouard.fr

Page 35: Syntaxe du langage PHP

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

Page 36: Syntaxe du langage PHP

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

Page 37: Syntaxe du langage PHP

Raccourci d'expression while

for (expr1; expr2; expr3) {...}

Peut être traduit par :

expr1;

while (expr2) {

...

expr3; }

37 LightPath 2014© - http://www.jmrenouard.fr

Page 38: Syntaxe du langage PHP

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

Page 39: Syntaxe du langage PHP

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

Page 40: Syntaxe du langage PHP

40 LightPath 2014© - http://www.jmrenouard.fr

Page 41: Syntaxe du langage PHP

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

Page 42: Syntaxe du langage PHP

$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

Page 43: Syntaxe du langage PHP

43 LightPath 2014© - http://www.jmrenouard.fr

Page 44: Syntaxe du langage PHP

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

Page 45: Syntaxe du langage PHP

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

Page 46: Syntaxe du langage PHP

Pas de valeur possible

La valeur peut-être de tout type

Référence possible

46 LightPath 2014© - http://www.jmrenouard.fr

Page 47: Syntaxe du langage PHP

Les fonctions variables

◦ $a= 'uneFonction';

◦ $a();

Les fonctions internes

◦ Fonctions fournies par des modules PHP

47 LightPath 2014© - http://www.jmrenouard.fr

Page 48: Syntaxe du langage PHP

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

Page 49: Syntaxe du langage PHP

Argument par défaut

◦ function ouvrir($passwd='toto')

Références et paramètres

◦ function lire(&$livre)

49 LightPath 2014© - http://www.jmrenouard.fr

Page 50: Syntaxe du langage PHP

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

Page 51: Syntaxe du langage PHP

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

Page 52: Syntaxe du langage PHP

LightPath: ◦ Société de conseil et d’ingénierie

◦ Formations, Conseil, Audit et mise en œuvre

[email protected]

Jean-Marie RENOUARD ◦ [email protected]

◦ Twitter: @jmrenouard

◦ http://www.jmrenouard.fr

LightPath 2014© - http://www.jmrenouard.fr 52