Syntaxe du langage PHP

Post on 19-Jun-2015

1.333 views 3 download

description

Présentation de la syntaxe de base de PHP

Transcript of Syntaxe du langage PHP

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 œuvre

◦ jmrenouard@lightpath.fr

Jean-Marie RENOUARD ◦ jmrenouard@gmail.com

◦ Twitter: @jmrenouard

◦ http://www.jmrenouard.fr

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